<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span>
</span><span id="line-3"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-4"></span><span class="hs-comment">--</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- Pretty-printing assembly language</span><span>
</span><span id="line-6"></span><span class="hs-comment">--</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- (c) The University of Glasgow 1993-2005</span><span>
</span><span id="line-8"></span><span class="hs-comment">--</span><span>
</span><span id="line-9"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-10"></span><span>
</span><span id="line-11"></span><span class="hs-pragma">{-# OPTIONS_GHC -fno-warn-orphans #-}</span><span>
</span><span id="line-12"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">GHC.CmmToAsm.X86.Ppr</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-13"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprNatCmmDecl"><span class="hs-identifier">pprNatCmmDecl</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-14"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier">pprData</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-15"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier">pprInstr</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-16"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier">pprFormat</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-17"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier">pprImm</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-18"></span><span>        </span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprDataItem"><span class="hs-identifier">pprDataItem</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-19"></span><span class="hs-special">)</span><span>
</span><span id="line-20"></span><span>
</span><span id="line-21"></span><span class="hs-keyword">where</span><span class="hs-cpp">

#include &quot;HsVersions.h&quot;
</span><span>
</span><span id="line-25"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Prelude.html"><span class="hs-identifier">GHC.Prelude</span></a></span><span>
</span><span id="line-26"></span><span>
</span><span id="line-27"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html"><span class="hs-identifier">GHC.CmmToAsm.X86.Regs</span></a></span><span>
</span><span id="line-28"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html"><span class="hs-identifier">GHC.CmmToAsm.X86.Instr</span></a></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Cond.html"><span class="hs-identifier">GHC.CmmToAsm.X86.Cond</span></a></span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Instr.html"><span class="hs-identifier">GHC.CmmToAsm.Instr</span></a></span><span>
</span><span id="line-31"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html"><span class="hs-identifier">GHC.CmmToAsm.Config</span></a></span><span>
</span><span id="line-32"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html"><span class="hs-identifier">GHC.CmmToAsm.Format</span></a></span><span>
</span><span id="line-33"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html"><span class="hs-identifier">GHC.Platform.Reg</span></a></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Ppr.html"><span class="hs-identifier">GHC.CmmToAsm.Ppr</span></a></span><span>
</span><span id="line-35"></span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.Dataflow.Collections.html"><span class="hs-identifier">GHC.Cmm.Dataflow.Collections</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.Dataflow.Label.html"><span class="hs-identifier">GHC.Cmm.Dataflow.Label</span></a></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html"><span class="hs-identifier">GHC.Types.Basic</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#Alignment"><span class="hs-identifier">Alignment</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#mkAlignment"><span class="hs-identifier">mkAlignment</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#alignmentBytes"><span class="hs-identifier">alignmentBytes</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Driver.Session.html"><span class="hs-identifier">GHC.Driver.Session</span></a></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.html"><span class="hs-identifier">GHC.Cmm</span></a></span><span>              </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#topInfoTable"><span class="hs-identifier">topInfoTable</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.BlockId.html"><span class="hs-identifier">GHC.Cmm.BlockId</span></a></span><span>
</span><span id="line-43"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html"><span class="hs-identifier">GHC.Cmm.CLabel</span></a></span><span>
</span><span id="line-44"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html"><span class="hs-identifier">GHC.Types.Unique</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier">pprUniqueAlways</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-45"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#"><span class="hs-identifier">GHC.Platform</span></a></span><span>
</span><span id="line-46"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html"><span class="hs-identifier">GHC.Data.FastString</span></a></span><span>
</span><span id="line-47"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html"><span class="hs-identifier">GHC.Utils.Outputable</span></a></span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Word.html#"><span class="hs-identifier">Data.Word</span></a></span><span>
</span><span id="line-50"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-53"></span><span class="hs-comment">-- Printing this stuff out</span><span>
</span><span id="line-54"></span><span class="hs-comment">--</span><span>
</span><span id="line-55"></span><span class="hs-comment">--</span><span>
</span><span id="line-56"></span><span class="hs-comment">-- Note [Subsections Via Symbols]</span><span>
</span><span id="line-57"></span><span class="hs-comment">--</span><span>
</span><span id="line-58"></span><span class="hs-comment">-- If we are using the .subsections_via_symbols directive</span><span>
</span><span id="line-59"></span><span class="hs-comment">-- (available on recent versions of Darwin),</span><span>
</span><span id="line-60"></span><span class="hs-comment">-- we have to make sure that there is some kind of reference</span><span>
</span><span id="line-61"></span><span class="hs-comment">-- from the entry code to a label on the _top_ of the info table,</span><span>
</span><span id="line-62"></span><span class="hs-comment">-- so that the linker will not think it is unreferenced and dead-strip</span><span>
</span><span id="line-63"></span><span class="hs-comment">-- it. That's why the label is called a DeadStripPreventer (_dsp).</span><span>
</span><span id="line-64"></span><span class="hs-comment">--</span><span>
</span><span id="line-65"></span><span class="hs-comment">-- The LLVM code gen already creates `iTableSuf` symbols, where</span><span>
</span><span id="line-66"></span><span class="hs-comment">-- the X86 would generate the DeadStripPreventer (_dsp) symbol.</span><span>
</span><span id="line-67"></span><span class="hs-comment">-- Therefore all that is left for llvm code gen, is to ensure</span><span>
</span><span id="line-68"></span><span class="hs-comment">-- that all the `iTableSuf` symbols are marked as used.</span><span>
</span><span id="line-69"></span><span class="hs-comment">-- As of this writing the documentation regarding the</span><span>
</span><span id="line-70"></span><span class="hs-comment">-- .subsections_via_symbols and -dead_strip can be found at</span><span>
</span><span id="line-71"></span><span class="hs-comment">-- &lt;https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/Assembler/040-Assembler_Directives/asm_directives.html#//apple_ref/doc/uid/TP30000823-TPXREF101&gt;</span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprProcAlignment"><span class="hs-identifier hs-type">pprProcAlignment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-74"></span><span id="pprProcAlignment"><span class="annot"><span class="annottext">pprProcAlignment :: NCGConfig -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprProcAlignment"><span class="hs-identifier hs-var hs-var">pprProcAlignment</span></a></span></span><span> </span><span id="local-6989586621681031247"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031247"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; (Int -&gt; SDoc) -&gt; Maybe Int -&gt; SDoc
forall b a. b -&gt; (a -&gt; b) -&gt; Maybe a -&gt; b
</span><a href="../../base/src/Data.Maybe.html#maybe"><span class="hs-identifier hs-var">maybe</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Alignment -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlign"><span class="hs-identifier hs-var">pprAlign</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031243"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">(Alignment -&gt; SDoc) -&gt; (Int -&gt; Alignment) -&gt; Int -&gt; SDoc
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Alignment
</span><a href="GHC.Types.Basic.html#mkAlignment"><span class="hs-identifier hs-var">mkAlignment</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; Maybe Int
</span><a href="GHC.CmmToAsm.Config.html#ncgProcAlignment"><span class="hs-identifier hs-var hs-var">ncgProcAlignment</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031247"><span class="hs-identifier hs-var">config</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-75"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-76"></span><span>      </span><span id="local-6989586621681031243"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681031243"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031247"><span class="hs-identifier hs-var">config</span></a></span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprNatCmmDecl"><span class="hs-identifier hs-type">pprNatCmmDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Instr.html#NatCmmDecl"><span class="hs-identifier hs-type">NatCmmDecl</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#Alignment"><span class="hs-identifier hs-type">Alignment</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Cmm.html#RawCmmStatics"><span class="hs-identifier hs-type">RawCmmStatics</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-79"></span><span id="pprNatCmmDecl"><span class="annot"><span class="annottext">pprNatCmmDecl :: NCGConfig -&gt; NatCmmDecl (Alignment, RawCmmStatics) Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprNatCmmDecl"><span class="hs-identifier hs-var hs-var">pprNatCmmDecl</span></a></span></span><span> </span><span id="local-6989586621681031239"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031239"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmData"><span class="hs-identifier hs-type">CmmData</span></a></span><span> </span><span id="local-6989586621681031237"><span class="annot"><span class="annottext">Section
</span><a href="#local-6989586621681031237"><span class="hs-identifier hs-var">section</span></a></span></span><span> </span><span id="local-6989586621681031236"><span class="annot"><span class="annottext">(Alignment, RawCmmStatics)
</span><a href="#local-6989586621681031236"><span class="hs-identifier hs-var">dats</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-80"></span><span>  </span><span class="annot"><span class="annottext">NCGConfig -&gt; Section -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-var">pprSectionAlign</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031239"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">Section
</span><a href="#local-6989586621681031237"><span class="hs-identifier hs-var">section</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; (Alignment, RawCmmStatics) -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprDatas"><span class="hs-identifier hs-var">pprDatas</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031239"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">(Alignment, RawCmmStatics)
</span><a href="#local-6989586621681031236"><span class="hs-identifier hs-var">dats</span></a></span><span>
</span><span id="line-81"></span><span>
</span><span id="line-82"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprNatCmmDecl"><span class="hs-identifier hs-var">pprNatCmmDecl</span></a></span><span> </span><span id="local-6989586621681031232"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span id="local-6989586621681031231"><span class="annot"><span class="annottext">proc :: NatCmmDecl (Alignment, RawCmmStatics) Instr
</span><a href="#local-6989586621681031231"><span class="hs-identifier hs-var">proc</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmProc"><span class="hs-identifier hs-type">CmmProc</span></a></span><span> </span><span id="local-6989586621681031229"><span class="annot"><span class="annottext">LabelMap RawCmmStatics
</span><a href="#local-6989586621681031229"><span class="hs-identifier hs-var">top_info</span></a></span></span><span> </span><span id="local-6989586621681031228"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031228"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span class="annot"><span class="annottext">[GlobalReg]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#ListGraph"><span class="hs-identifier hs-type">ListGraph</span></a></span><span> </span><span id="local-6989586621681031226"><span class="annot"><span class="annottext">[GenBasicBlock Instr]
</span><a href="#local-6989586621681031226"><span class="hs-identifier hs-var">blocks</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-83"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681031225"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="hs-keyword">in</span><span>
</span><span id="line-84"></span><span>  </span><span class="annot"><span class="annottext">NCGConfig -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprProcAlignment"><span class="hs-identifier hs-var">pprProcAlignment</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-85"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">NatCmmDecl (Alignment, RawCmmStatics) Instr -&gt; Maybe RawCmmStatics
forall a i b. GenCmmDecl a (LabelMap i) (ListGraph b) -&gt; Maybe i
</span><a href="GHC.CmmToAsm.Instr.html#topInfoTable"><span class="hs-identifier hs-var">topInfoTable</span></a></span><span> </span><span class="annot"><span class="annottext">NatCmmDecl (Alignment, RawCmmStatics) Instr
</span><a href="#local-6989586621681031231"><span class="hs-identifier hs-var">proc</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-86"></span><span>    </span><span class="annot"><span class="annottext">Maybe RawCmmStatics
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-87"></span><span>        </span><span class="hs-comment">-- special case for code without info table:</span><span>
</span><span id="line-88"></span><span>        </span><span class="annot"><span class="annottext">NCGConfig -&gt; Section -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-var">pprSectionAlign</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SectionType -&gt; CLabel -&gt; Section
</span><a href="GHC.Cmm.html#Section"><span class="hs-identifier hs-var">Section</span></a></span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#Text"><span class="hs-identifier hs-var">Text</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031228"><span class="hs-identifier hs-var">lbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-89"></span><span>        </span><span class="annot"><span class="annottext">NCGConfig -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprProcAlignment"><span class="hs-identifier hs-var">pprProcAlignment</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-90"></span><span>        </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-var">pprLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031228"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-comment">-- blocks guaranteed not null, so label needed</span><span>
</span><span id="line-91"></span><span>        </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GenBasicBlock Instr -&gt; SDoc) -&gt; [GenBasicBlock Instr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; LabelMap RawCmmStatics -&gt; GenBasicBlock Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprBasicBlock"><span class="hs-identifier hs-var">pprBasicBlock</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">LabelMap RawCmmStatics
</span><a href="#local-6989586621681031229"><span class="hs-identifier hs-var">top_info</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[GenBasicBlock Instr]
</span><a href="#local-6989586621681031226"><span class="hs-identifier hs-var">blocks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-92"></span><span>        </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Int
</span><a href="GHC.CmmToAsm.Config.html#ncgDebugLevel"><span class="hs-identifier hs-var hs-var">ncgDebugLevel</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-93"></span><span>         </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031228"><span class="hs-identifier hs-var">lbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span> </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-94"></span><span>        </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSizeDecl"><span class="hs-identifier hs-var">pprSizeDecl</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031228"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-95"></span><span>
</span><span id="line-96"></span><span>    </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmStaticsRaw"><span class="hs-identifier hs-type">CmmStaticsRaw</span></a></span><span> </span><span id="local-6989586621681031210"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span></span><span> </span><span class="annot"><span class="annottext">[CmmStatic]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-97"></span><span>      </span><span class="annot"><span class="annottext">NCGConfig -&gt; Section -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-var">pprSectionAlign</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SectionType -&gt; CLabel -&gt; Section
</span><a href="GHC.Cmm.html#Section"><span class="hs-identifier hs-var">Section</span></a></span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#Text"><span class="hs-identifier hs-var">Text</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-98"></span><span>      </span><span class="annot"><span class="annottext">NCGConfig -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprProcAlignment"><span class="hs-identifier hs-var">pprProcAlignment</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-99"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformHasSubsectionsViaSymbols"><span class="hs-identifier hs-var hs-var">platformHasSubsectionsViaSymbols</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var">platform</span></a></span><span>
</span><span id="line-100"></span><span>          </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkDeadStripPreventer"><span class="hs-identifier hs-var">mkDeadStripPreventer</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span>
</span><span id="line-101"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-102"></span><span>      </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(GenBasicBlock Instr -&gt; SDoc) -&gt; [GenBasicBlock Instr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; LabelMap RawCmmStatics -&gt; GenBasicBlock Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprBasicBlock"><span class="hs-identifier hs-var">pprBasicBlock</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031232"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">LabelMap RawCmmStatics
</span><a href="#local-6989586621681031229"><span class="hs-identifier hs-var">top_info</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[GenBasicBlock Instr]
</span><a href="#local-6989586621681031226"><span class="hs-identifier hs-var">blocks</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-103"></span><span>      </span><span class="hs-comment">-- above: Even the first block gets a label, because with branch-chain</span><span>
</span><span id="line-104"></span><span>      </span><span class="hs-comment">-- elimination, it might be the target of a goto.</span><span>
</span><span id="line-105"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformHasSubsectionsViaSymbols"><span class="hs-identifier hs-var hs-var">platformHasSubsectionsViaSymbols</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var">platform</span></a></span><span>
</span><span id="line-106"></span><span>       </span><span class="hs-keyword">then</span><span> </span><span class="hs-comment">-- See Note [Subsections Via Symbols]</span><span>
</span><span id="line-107"></span><span>                </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long &quot;</span></span><span>
</span><span id="line-108"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span><span>
</span><span id="line-109"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-110"></span><span>            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkDeadStripPreventer"><span class="hs-identifier hs-var">mkDeadStripPreventer</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-111"></span><span>       </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-112"></span><span>      </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSizeDecl"><span class="hs-identifier hs-var">pprSizeDecl</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031225"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031210"><span class="hs-identifier hs-var">info_lbl</span></a></span><span>
</span><span id="line-113"></span><span>
</span><span id="line-114"></span><span class="hs-comment">-- | Output the ELF .size directive.</span><span>
</span><span id="line-115"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprSizeDecl"><span class="hs-identifier hs-type">pprSizeDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-116"></span><span id="pprSizeDecl"><span class="annot"><span class="annottext">pprSizeDecl :: Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSizeDecl"><span class="hs-identifier hs-var hs-var">pprSizeDecl</span></a></span></span><span> </span><span id="local-6989586621681031205"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031205"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031204"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031204"><span class="hs-identifier hs-var">lbl</span></a></span></span><span>
</span><span id="line-117"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">OS -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#osElfTarget"><span class="hs-identifier hs-var">osElfTarget</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031205"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-118"></span><span>   </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.size&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031204"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, .-&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031204"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-119"></span><span>   </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-120"></span><span>
</span><span id="line-121"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprBasicBlock"><span class="hs-identifier hs-type">pprBasicBlock</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Dataflow.Label.html#LabelMap"><span class="hs-identifier hs-type">LabelMap</span></a></span><span> </span><span class="annot"><a href="GHC.Cmm.html#RawCmmStatics"><span class="hs-identifier hs-type">RawCmmStatics</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Instr.html#NatBasicBlock"><span class="hs-identifier hs-type">NatBasicBlock</span></a></span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-122"></span><span id="pprBasicBlock"><span class="annot"><span class="annottext">pprBasicBlock :: NCGConfig -&gt; LabelMap RawCmmStatics -&gt; GenBasicBlock Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprBasicBlock"><span class="hs-identifier hs-var hs-var">pprBasicBlock</span></a></span></span><span> </span><span id="local-6989586621681031198"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031198"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span id="local-6989586621681031197"><span class="annot"><span class="annottext">LabelMap RawCmmStatics
</span><a href="#local-6989586621681031197"><span class="hs-identifier hs-var">info_env</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#BasicBlock"><span class="hs-identifier hs-type">BasicBlock</span></a></span><span> </span><span id="local-6989586621681031195"><span class="annot"><span class="annottext">BlockId
</span><a href="#local-6989586621681031195"><span class="hs-identifier hs-var">blockid</span></a></span></span><span> </span><span id="local-6989586621681031194"><span class="annot"><span class="annottext">[Instr]
</span><a href="#local-6989586621681031194"><span class="hs-identifier hs-var">instrs</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681031193"><span class="hs-identifier hs-var">maybe_infotable</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-124"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-var">pprLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031191"><span class="hs-identifier hs-var">asmLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-125"></span><span>    </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Instr -&gt; SDoc) -&gt; [Instr] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Instr]
</span><a href="#local-6989586621681031194"><span class="hs-identifier hs-var">instrs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-126"></span><span>    </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Int
</span><a href="GHC.CmmToAsm.Config.html#ncgDebugLevel"><span class="hs-identifier hs-var hs-var">ncgDebugLevel</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031198"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-127"></span><span>      </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031191"><span class="hs-identifier hs-var">asmLbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span>
</span><span id="line-128"></span><span>      </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-129"></span><span>    </span><span class="hs-special">)</span><span>
</span><span id="line-130"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-131"></span><span>    </span><span id="local-6989586621681031191"><span class="annot"><span class="annottext">asmLbl :: CLabel
</span><a href="#local-6989586621681031191"><span class="hs-identifier hs-var hs-var">asmLbl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BlockId -&gt; CLabel
</span><a href="GHC.Cmm.BlockId.html#blockLbl"><span class="hs-identifier hs-var">blockLbl</span></a></span><span> </span><span class="annot"><span class="annottext">BlockId
</span><a href="#local-6989586621681031195"><span class="hs-identifier hs-var">blockid</span></a></span><span>
</span><span id="line-132"></span><span>    </span><span id="local-6989586621681031192"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031198"><span class="hs-identifier hs-var">config</span></a></span><span>
</span><span id="line-133"></span><span>    </span><span id="local-6989586621681031193"><span class="annot"><span class="annottext">maybe_infotable :: SDoc -&gt; SDoc
</span><a href="#local-6989586621681031193"><span class="hs-identifier hs-var hs-var">maybe_infotable</span></a></span></span><span> </span><span id="local-6989586621681031184"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681031184"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">KeyOf LabelMap -&gt; LabelMap RawCmmStatics -&gt; Maybe RawCmmStatics
forall (map :: * -&gt; *) a.
IsMap map =&gt;
KeyOf map -&gt; map a -&gt; Maybe a
</span><a href="GHC.Cmm.Dataflow.Collections.html#mapLookup"><span class="hs-identifier hs-var">mapLookup</span></a></span><span> </span><span class="annot"><span class="annottext">KeyOf LabelMap
BlockId
</span><a href="#local-6989586621681031195"><span class="hs-identifier hs-var">blockid</span></a></span><span> </span><span class="annot"><span class="annottext">LabelMap RawCmmStatics
</span><a href="#local-6989586621681031197"><span class="hs-identifier hs-var">info_env</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-134"></span><span>       </span><span class="annot"><span class="annottext">Maybe RawCmmStatics
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681031184"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-135"></span><span>       </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmStaticsRaw"><span class="hs-identifier hs-type">CmmStaticsRaw</span></a></span><span> </span><span id="local-6989586621681031182"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031182"><span class="hs-identifier hs-var">infoLbl</span></a></span></span><span> </span><span id="local-6989586621681031181"><span class="annot"><span class="annottext">[CmmStatic]
</span><a href="#local-6989586621681031181"><span class="hs-identifier hs-var">info</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-136"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; SectionType -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlignForSection"><span class="hs-identifier hs-var">pprAlignForSection</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#Text"><span class="hs-identifier hs-var">Text</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-137"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681031179"><span class="hs-identifier hs-var">infoTableLoc</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-138"></span><span>           </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CmmStatic -&gt; SDoc) -&gt; [CmmStatic] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; CmmStatic -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var">pprData</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031198"><span class="hs-identifier hs-var">config</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[CmmStatic]
</span><a href="#local-6989586621681031181"><span class="hs-identifier hs-var">info</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-139"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-var">pprLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031182"><span class="hs-identifier hs-var">infoLbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-140"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681031184"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-141"></span><span>           </span><span class="hs-special">(</span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Int
</span><a href="GHC.CmmToAsm.Config.html#ncgDebugLevel"><span class="hs-identifier hs-var hs-var">ncgDebugLevel</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031198"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-142"></span><span>               </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CLabel
</span><a href="GHC.Cmm.CLabel.html#mkAsmTempEndLabel"><span class="hs-identifier hs-var">mkAsmTempEndLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031182"><span class="hs-identifier hs-var">infoLbl</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span>
</span><span id="line-143"></span><span>               </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-144"></span><span>           </span><span class="hs-special">)</span><span>
</span><span id="line-145"></span><span>    </span><span class="hs-comment">-- Make sure the info table has the right .loc for the block</span><span>
</span><span id="line-146"></span><span>    </span><span class="hs-comment">-- coming right after it. See [Note: Info Offset]</span><span>
</span><span id="line-147"></span><span>    </span><span id="local-6989586621681031179"><span class="annot"><span class="annottext">infoTableLoc :: SDoc
</span><a href="#local-6989586621681031179"><span class="hs-identifier hs-var hs-var">infoTableLoc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">[Instr]
</span><a href="#local-6989586621681031194"><span class="hs-identifier hs-var">instrs</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-148"></span><span>      </span><span class="hs-special">(</span><span id="local-6989586621681031178"><span class="annot"><span class="annottext">l :: Instr
</span><a href="#local-6989586621681031178"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-glyph">@</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LOCATION"><span class="hs-identifier hs-type">LOCATION</span></a></span><span class="hs-special">{</span><span class="hs-special">}</span><span> </span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span> </span><span class="annot"><span class="annottext">[Instr]
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031192"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681031178"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-149"></span><span>      </span><span id="local-6989586621681031176"><span class="annot"><span class="annottext">[Instr]
</span><a href="#local-6989586621681031176"><span class="hs-identifier hs-var">_other</span></a></span></span><span>             </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-150"></span><span>
</span><span id="line-151"></span><span>
</span><span id="line-152"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprDatas"><span class="hs-identifier hs-type">pprDatas</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Types.Basic.html#Alignment"><span class="hs-identifier hs-type">Alignment</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Cmm.html#RawCmmStatics"><span class="hs-identifier hs-type">RawCmmStatics</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-153"></span><span class="hs-comment">-- See note [emit-time elimination of static indirections] in &quot;GHC.Cmm.CLabel&quot;.</span><span>
</span><span id="line-154"></span><span id="pprDatas"><span class="annot"><span class="annottext">pprDatas :: NCGConfig -&gt; (Alignment, RawCmmStatics) -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprDatas"><span class="hs-identifier hs-var hs-var">pprDatas</span></a></span></span><span> </span><span id="local-6989586621681031175"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031175"><span class="hs-identifier hs-var">_config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Alignment
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Cmm.html#CmmStaticsRaw"><span class="hs-identifier hs-type">CmmStaticsRaw</span></a></span><span> </span><span id="local-6989586621681031174"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031174"><span class="hs-identifier hs-var">alias</span></a></span></span><span> </span><span class="hs-special">[</span><span class="annot"><a href="GHC.Cmm.html#CmmStaticLit"><span class="hs-identifier hs-type">CmmStaticLit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmLabel"><span class="hs-identifier hs-type">CmmLabel</span></a></span><span> </span><span id="local-6989586621681031171"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031171"><span class="hs-identifier hs-var">lbl</span></a></span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Cmm.html#CmmStaticLit"><span class="hs-identifier hs-type">CmmStaticLit</span></a></span><span> </span><span id="local-6989586621681031170"><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681031170"><span class="hs-identifier hs-var">ind</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CmmStatic
</span><span class="hs-identifier">_</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CmmStatic
</span><span class="hs-identifier">_</span></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-155"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031171"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="GHC.Cmm.CLabel.html#mkIndStaticInfoLabel"><span class="hs-identifier hs-var">mkIndStaticInfoLabel</span></a></span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681031168"><span class="annot"><span class="annottext">labelInd :: CmmLit -&gt; Maybe CLabel
</span><a href="#local-6989586621681031168"><span class="hs-identifier hs-var hs-var">labelInd</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmLabelOff"><span class="hs-identifier hs-type">CmmLabelOff</span></a></span><span> </span><span id="local-6989586621681031166"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031166"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; Maybe CLabel
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031166"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-157"></span><span>        </span><span class="annot"><a href="#local-6989586621681031168"><span class="hs-identifier hs-var">labelInd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmLabel"><span class="hs-identifier hs-type">CmmLabel</span></a></span><span> </span><span id="local-6989586621681031165"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031165"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; Maybe CLabel
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031165"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-158"></span><span>        </span><span class="annot"><a href="#local-6989586621681031168"><span class="hs-identifier hs-var">labelInd</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe CLabel
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621681031164"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031164"><span class="hs-identifier hs-var">ind'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CmmLit -&gt; Maybe CLabel
</span><a href="#local-6989586621681031168"><span class="hs-identifier hs-var">labelInd</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681031170"><span class="hs-identifier hs-var">ind</span></a></span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031174"><span class="hs-identifier hs-var">alias</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#mayRedirectTo"><span class="hs-operator hs-var">`mayRedirectTo`</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031164"><span class="hs-identifier hs-var">ind'</span></a></span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprGloblDecl"><span class="hs-identifier hs-var">pprGloblDecl</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031174"><span class="hs-identifier hs-var">alias</span></a></span><span>
</span><span id="line-162"></span><span>    </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.equiv&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031174"><span class="hs-identifier hs-var">alias</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; CmmLit
</span><a href="GHC.Cmm.Expr.html#CmmLabel"><span class="hs-identifier hs-var">CmmLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031164"><span class="hs-identifier hs-var">ind'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span>
</span><span id="line-164"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprDatas"><span class="hs-identifier hs-var">pprDatas</span></a></span><span> </span><span id="local-6989586621681031160"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031160"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621681031159"><span class="annot"><span class="annottext">Alignment
</span><a href="#local-6989586621681031159"><span class="hs-identifier hs-var">align</span></a></span></span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmStaticsRaw"><span class="hs-identifier hs-type">CmmStaticsRaw</span></a></span><span> </span><span id="local-6989586621681031158"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031158"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span id="local-6989586621681031157"><span class="annot"><span class="annottext">[CmmStatic]
</span><a href="#local-6989586621681031157"><span class="hs-identifier hs-var">dats</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-165"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Alignment -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlign"><span class="hs-identifier hs-var">pprAlign</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031156"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Alignment
</span><a href="#local-6989586621681031159"><span class="hs-identifier hs-var">align</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-var">pprLabel</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031156"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031158"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; [SDoc] -&gt; [SDoc]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">(CmmStatic -&gt; SDoc) -&gt; [CmmStatic] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; CmmStatic -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var">pprData</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031160"><span class="hs-identifier hs-var">config</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[CmmStatic]
</span><a href="#local-6989586621681031157"><span class="hs-identifier hs-var">dats</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-166"></span><span>   </span><span class="hs-keyword">where</span><span>
</span><span id="line-167"></span><span>      </span><span id="local-6989586621681031156"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681031156"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031160"><span class="hs-identifier hs-var">config</span></a></span><span>
</span><span id="line-168"></span><span>
</span><span id="line-169"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-type">pprData</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.html#CmmStatic"><span class="hs-identifier hs-type">CmmStatic</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-170"></span><span id="pprData"><span class="annot"><span class="annottext">pprData :: NCGConfig -&gt; CmmStatic -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var hs-var">pprData</span></a></span></span><span> </span><span id="local-6989586621681031155"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031155"><span class="hs-identifier hs-var">_config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmString"><span class="hs-identifier hs-type">CmmString</span></a></span><span> </span><span id="local-6989586621681031153"><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621681031153"><span class="hs-identifier hs-var">str</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ByteString -&gt; SDoc
</span><a href="GHC.CmmToAsm.Ppr.html#pprString"><span class="hs-identifier hs-var">pprString</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
</span><a href="#local-6989586621681031153"><span class="hs-identifier hs-var">str</span></a></span><span>
</span><span id="line-171"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var">pprData</span></a></span><span> </span><span id="local-6989586621681031151"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031151"><span class="hs-identifier hs-var">_config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmFileEmbed"><span class="hs-identifier hs-type">CmmFileEmbed</span></a></span><span> </span><span id="local-6989586621681031149"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681031149"><span class="hs-identifier hs-var">path</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.CmmToAsm.Ppr.html#pprFileEmbed"><span class="hs-identifier hs-var">pprFileEmbed</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681031149"><span class="hs-identifier hs-var">path</span></a></span><span>
</span><span id="line-172"></span><span>
</span><span id="line-173"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var">pprData</span></a></span><span> </span><span id="local-6989586621681031147"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031147"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmUninitialised"><span class="hs-identifier hs-type">CmmUninitialised</span></a></span><span> </span><span id="local-6989586621681031145"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031145"><span class="hs-identifier hs-var">bytes</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681031144"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681031144"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031147"><span class="hs-identifier hs-var">config</span></a></span><span>
</span><span id="line-175"></span><span>   </span><span class="hs-keyword">in</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031144"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">OS -&gt; OS -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span>
</span><span id="line-176"></span><span>         </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.space &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031145"><span class="hs-identifier hs-var">bytes</span></a></span><span>
</span><span id="line-177"></span><span>         </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.skip &quot;</span></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031145"><span class="hs-identifier hs-var">bytes</span></a></span><span>
</span><span id="line-178"></span><span>
</span><span id="line-179"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprData"><span class="hs-identifier hs-var">pprData</span></a></span><span> </span><span id="local-6989586621681031141"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031141"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#CmmStaticLit"><span class="hs-identifier hs-type">CmmStaticLit</span></a></span><span> </span><span id="local-6989586621681031140"><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681031140"><span class="hs-identifier hs-var">lit</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; CmmLit -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprDataItem"><span class="hs-identifier hs-var">pprDataItem</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681031141"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681031140"><span class="hs-identifier hs-var">lit</span></a></span><span>
</span><span id="line-180"></span><span>
</span><span id="line-181"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprGloblDecl"><span class="hs-identifier hs-type">pprGloblDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-182"></span><span id="pprGloblDecl"><span class="annot"><span class="annottext">pprGloblDecl :: CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprGloblDecl"><span class="hs-identifier hs-var hs-var">pprGloblDecl</span></a></span></span><span> </span><span id="local-6989586621681031139"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031139"><span class="hs-identifier hs-var">lbl</span></a></span></span><span>
</span><span id="line-183"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#externallyVisibleCLabel"><span class="hs-identifier hs-var">externallyVisibleCLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031139"><span class="hs-identifier hs-var">lbl</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-184"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.globl &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031139"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-185"></span><span>
</span><span id="line-186"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabelType%27"><span class="hs-identifier hs-type">pprLabelType'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-187"></span><span id="pprLabelType%27"><span class="annot"><span class="annottext">pprLabelType' :: Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabelType%27"><span class="hs-identifier hs-var hs-var">pprLabelType'</span></a></span></span><span> </span><span id="local-6989586621681031135"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031135"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031134"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031134"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-188"></span><span>  </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#isCFunctionLabel"><span class="hs-identifier hs-var">isCFunctionLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031134"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="#local-6989586621681031131"><span class="hs-identifier hs-var">functionOkInfoTable</span></a></span><span> </span><span class="hs-keyword">then</span><span>
</span><span id="line-189"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@function&quot;</span></span><span>
</span><span id="line-190"></span><span>  </span><span class="hs-keyword">else</span><span>
</span><span id="line-191"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;@object&quot;</span></span><span>
</span><span id="line-192"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-193"></span><span>    </span><span class="hs-comment">{-
    NOTE: This is a bit hacky.

    With the `tablesNextToCode` info tables look like this:
    ```
      &lt;info table data&gt;
    label_info:
      &lt;info table code&gt;
    ```
    So actually info table label points exactly to the code and we can mark
    the label as @function. (This is required to make perf and potentially other
    tools to work on Haskell binaries).
    This usually works well but it can cause issues with a linker.
    A linker uses different algorithms for the relocation depending on
    the symbol type.For some reason, a linker will generate JUMP_SLOT relocation
    when constructor info table is referenced from a data section.
    This only happens with static constructor call so
    we mark _con_info symbols as `@object` to avoid the issue with relocations.

    @SimonMarlow hack explanation:
    &quot;The reasoning goes like this:

    * The danger when we mark a symbol as `@function` is that the linker will
      redirect it to point to the PLT and use a `JUMP_SLOT` relocation when
      the symbol refers to something outside the current shared object.
      A PLT / JUMP_SLOT reference only works for symbols that we jump to, not
      for symbols representing data,, nor for info table symbol references which
      we expect to point directly to the info table.
    * GHC generates code that might refer to any info table symbol from the text
      segment, but that's OK, because those will be explicit GOT references
      generated by the code generator.
    * When we refer to info tables from the data segment, it's either
      * a FUN_STATIC/THUNK_STATIC local to this module
      * a `con_info` that could be from anywhere

    So, the only info table symbols that we might refer to from the data segment
    of another shared object are `con_info` symbols, so those are the ones we
    need to exclude from getting the @function treatment.
    &quot;

    A good place to check for more
    https://gitlab.haskell.org/ghc/ghc/wikis/commentary/position-independent-code

    Another possible hack is to create an extra local function symbol for
    every code-like thing to give the needed information for to the tools
    but mess up with the relocation. https://phabricator.haskell.org/D4730
    -}</span><span>
</span><span id="line-240"></span><span>    </span><span id="local-6989586621681031131"><span class="annot"><span class="annottext">functionOkInfoTable :: Bool
</span><a href="#local-6989586621681031131"><span class="hs-identifier hs-var hs-var">functionOkInfoTable</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformTablesNextToCode"><span class="hs-identifier hs-var hs-var">platformTablesNextToCode</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031135"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span>
</span><span id="line-241"></span><span>      </span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#isInfoTableLabel"><span class="hs-identifier hs-var">isInfoTableLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031134"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#isConInfoTableLabel"><span class="hs-identifier hs-var">isConInfoTableLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031134"><span class="hs-identifier hs-var">lbl</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-242"></span><span>
</span><span id="line-243"></span><span>
</span><span id="line-244"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprTypeDecl"><span class="hs-identifier hs-type">pprTypeDecl</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-245"></span><span id="pprTypeDecl"><span class="annot"><span class="annottext">pprTypeDecl :: Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprTypeDecl"><span class="hs-identifier hs-var hs-var">pprTypeDecl</span></a></span></span><span> </span><span id="local-6989586621681031125"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031125"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031124"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031124"><span class="hs-identifier hs-var">lbl</span></a></span></span><span>
</span><span id="line-246"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">OS -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#osElfTarget"><span class="hs-identifier hs-var">osElfTarget</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031125"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; Bool
</span><a href="GHC.Cmm.CLabel.html#externallyVisibleCLabel"><span class="hs-identifier hs-var">externallyVisibleCLabel</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031124"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-247"></span><span>      </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.type &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031124"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span>  </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;, &quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabelType%27"><span class="hs-identifier hs-var">pprLabelType'</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031125"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031124"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-248"></span><span>      </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-249"></span><span>
</span><span id="line-250"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-type">pprLabel</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.CLabel.html#CLabel"><span class="hs-identifier hs-type">CLabel</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-251"></span><span id="pprLabel"><span class="annot"><span class="annottext">pprLabel :: Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprLabel"><span class="hs-identifier hs-var hs-var">pprLabel</span></a></span></span><span> </span><span id="local-6989586621681031123"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031123"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031122"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031122"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-252"></span><span>   </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprGloblDecl"><span class="hs-identifier hs-var">pprGloblDecl</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031122"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-253"></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; CLabel -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprTypeDecl"><span class="hs-identifier hs-var">pprTypeDecl</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031123"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031122"><span class="hs-identifier hs-var">lbl</span></a></span><span>
</span><span id="line-254"></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681031122"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">':'</span></span><span class="hs-special">)</span><span>
</span><span id="line-255"></span><span>
</span><span id="line-256"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlign"><span class="hs-identifier hs-type">pprAlign</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Types.Basic.html#Alignment"><span class="hs-identifier hs-type">Alignment</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-257"></span><span id="pprAlign"><span class="annot"><span class="annottext">pprAlign :: Platform -&gt; Alignment -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlign"><span class="hs-identifier hs-var hs-var">pprAlign</span></a></span></span><span> </span><span id="local-6989586621681031121"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031121"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031120"><span class="annot"><span class="annottext">Alignment
</span><a href="#local-6989586621681031120"><span class="hs-identifier hs-var">alignment</span></a></span></span><span>
</span><span id="line-258"></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.align &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Int
</span><a href="#local-6989586621681031119"><span class="hs-identifier hs-var">alignmentOn</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031121"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-259"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-260"></span><span>        </span><span id="local-6989586621681031118"><span class="annot"><span class="annottext">bytes :: Int
</span><a href="#local-6989586621681031118"><span class="hs-identifier hs-var hs-var">bytes</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Alignment -&gt; Int
</span><a href="GHC.Types.Basic.html#alignmentBytes"><span class="hs-identifier hs-var hs-var">alignmentBytes</span></a></span><span> </span><span class="annot"><span class="annottext">Alignment
</span><a href="#local-6989586621681031120"><span class="hs-identifier hs-var">alignment</span></a></span><span>
</span><span id="line-261"></span><span>        </span><span id="local-6989586621681031119"><span class="annot"><span class="annottext">alignmentOn :: Platform -&gt; Int
</span><a href="#local-6989586621681031119"><span class="hs-identifier hs-var hs-var">alignmentOn</span></a></span></span><span> </span><span id="local-6989586621681031116"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031116"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031116"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">OS -&gt; OS -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span>
</span><span id="line-262"></span><span>                               </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int
</span><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031118"><span class="hs-identifier hs-var">bytes</span></a></span><span>
</span><span id="line-263"></span><span>                               </span><span class="hs-keyword">else</span><span>      </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031118"><span class="hs-identifier hs-var">bytes</span></a></span><span>
</span><span id="line-264"></span><span>
</span><span id="line-265"></span><span>        </span><span class="annot"><a href="#local-6989586621681031115"><span class="hs-identifier hs-type">log2</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span>  </span><span class="hs-comment">-- cache the common ones</span><span>
</span><span id="line-266"></span><span>        </span><span id="local-6989586621681031115"><span class="annot"><span class="annottext">log2 :: Int -&gt; Int
</span><a href="#local-6989586621681031115"><span class="hs-identifier hs-var hs-var">log2</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span>
</span><span id="line-267"></span><span>        </span><span class="annot"><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-268"></span><span>        </span><span class="annot"><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span>
</span><span id="line-269"></span><span>        </span><span class="annot"><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span>
</span><span id="line-270"></span><span>        </span><span class="annot"><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span id="local-6989586621681031114"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031114"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int
</span><a href="#local-6989586621681031115"><span class="hs-identifier hs-var">log2</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031114"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Integral a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Real.html#quot"><span class="hs-operator hs-var">`quot`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span class="hs-special">)</span><span>
</span><span id="line-271"></span><span>
</span><span id="line-272"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621681031109"><span class="annot"><a href="GHC.Utils.Outputable.html#Outputable"><span class="hs-identifier hs-type">Outputable</span></a></span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-273"></span><span>    </span><span id="local-6989586621681031107"><span class="annot"><span class="annottext">ppr :: Instr -&gt; SDoc
</span><a href="#local-6989586621681031107"><span class="hs-identifier hs-var hs-var hs-var hs-var">ppr</span></a></span></span><span> </span><span id="local-6989586621681031106"><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681031106"><span class="hs-identifier hs-var">instr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(DynFlags -&gt; SDoc) -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#sdocWithDynFlags"><span class="hs-identifier hs-var">sdocWithDynFlags</span></a></span><span> </span><span class="annot"><span class="annottext">((DynFlags -&gt; SDoc) -&gt; SDoc) -&gt; (DynFlags -&gt; SDoc) -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621681031104"><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681031104"><span class="hs-identifier hs-var">dflags</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-274"></span><span>                  </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">DynFlags -&gt; Platform
</span><a href="GHC.Driver.Session.html#targetPlatform"><span class="hs-identifier hs-var hs-var">targetPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">DynFlags
</span><a href="#local-6989586621681031104"><span class="hs-identifier hs-var">dflags</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681031106"><span class="hs-identifier hs-var">instr</span></a></span><span>
</span><span id="line-275"></span><span>
</span><span id="line-276"></span><span>
</span><span id="line-277"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-type">pprReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-278"></span><span id="pprReg"><span class="annot"><span class="annottext">pprReg :: Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var hs-var">pprReg</span></a></span></span><span> </span><span id="local-6989586621681031101"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031101"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681031100"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681031100"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621681031099"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681031099"><span class="hs-identifier hs-var">r</span></a></span></span><span>
</span><span id="line-279"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681031099"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-280"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegReal"><span class="hs-identifier hs-type">RegReal</span></a></span><span>    </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#RealRegSingle"><span class="hs-identifier hs-type">RealRegSingle</span></a></span><span> </span><span id="local-6989586621681031096"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031096"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-281"></span><span>          </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681031101"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">Format -&gt; Int -&gt; SDoc
</span><a href="#local-6989586621681031094"><span class="hs-identifier hs-var">ppr32_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681031100"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031096"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-282"></span><span>                                  </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">Format -&gt; Int -&gt; SDoc
</span><a href="#local-6989586621681031093"><span class="hs-identifier hs-var">ppr64_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681031100"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031096"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-283"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegReal"><span class="hs-identifier hs-type">RegReal</span></a></span><span>    </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#RealRegPair"><span class="hs-identifier hs-type">RealRegPair</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr: no reg pairs on this arch&quot;</span></span><span>
</span><span id="line-284"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegVirtual"><span class="hs-identifier hs-type">RegVirtual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#VirtualRegI"><span class="hs-identifier hs-type">VirtualRegI</span></a></span><span>  </span><span id="local-6989586621681031088"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031088"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%vI_&quot;</span></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier hs-var">pprUniqueAlways</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031088"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-285"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegVirtual"><span class="hs-identifier hs-type">RegVirtual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#VirtualRegHi"><span class="hs-identifier hs-type">VirtualRegHi</span></a></span><span> </span><span id="local-6989586621681031086"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031086"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%vHi_&quot;</span></span><span>  </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier hs-var">pprUniqueAlways</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031086"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-286"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegVirtual"><span class="hs-identifier hs-type">RegVirtual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#VirtualRegF"><span class="hs-identifier hs-type">VirtualRegF</span></a></span><span>  </span><span id="local-6989586621681031084"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031084"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%vF_&quot;</span></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier hs-var">pprUniqueAlways</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031084"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-287"></span><span>      </span><span class="annot"><a href="GHC.Platform.Reg.html#RegVirtual"><span class="hs-identifier hs-type">RegVirtual</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#VirtualRegD"><span class="hs-identifier hs-type">VirtualRegD</span></a></span><span>  </span><span id="local-6989586621681031082"><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031082"><span class="hs-identifier hs-var">u</span></a></span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%vD_&quot;</span></span><span>   </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Unique -&gt; SDoc
</span><a href="GHC.Types.Unique.html#pprUniqueAlways"><span class="hs-identifier hs-var">pprUniqueAlways</span></a></span><span> </span><span class="annot"><span class="annottext">Unique
</span><a href="#local-6989586621681031082"><span class="hs-identifier hs-var">u</span></a></span><span>
</span><span id="line-288"></span><span>
</span><span id="line-289"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-290"></span><span>    </span><span class="annot"><a href="#local-6989586621681031094"><span class="hs-identifier hs-type">ppr32_reg_no</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-291"></span><span>    </span><span id="local-6989586621681031094"><span class="annot"><span class="annottext">ppr32_reg_no :: Format -&gt; Int -&gt; SDoc
</span><a href="#local-6989586621681031094"><span class="hs-identifier hs-var hs-var">ppr32_reg_no</span></a></span></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall {a}. (Eq a, Num a, Show a) =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681031080"><span class="hs-identifier hs-var">ppr32_reg_byte</span></a></span><span>
</span><span id="line-292"></span><span>    </span><span class="annot"><a href="#local-6989586621681031094"><span class="hs-identifier hs-var">ppr32_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall {a}. (Eq a, Num a) =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681031078"><span class="hs-identifier hs-var">ppr32_reg_word</span></a></span><span>
</span><span id="line-293"></span><span>    </span><span class="annot"><a href="#local-6989586621681031094"><span class="hs-identifier hs-var">ppr32_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="#local-6989586621681031077"><span class="hs-identifier hs-var">ppr32_reg_long</span></a></span><span>
</span><span id="line-294"></span><span>
</span><span id="line-295"></span><span>    </span><span id="local-6989586621681031080"><span class="annot"><span class="annottext">ppr32_reg_byte :: a -&gt; SDoc
</span><a href="#local-6989586621681031080"><span class="hs-identifier hs-var hs-var">ppr32_reg_byte</span></a></span></span><span> </span><span id="local-6989586621681031064"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681031064"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-296"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681031064"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-297"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%al&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bl&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-298"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%cl&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%dl&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-299"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; PtrString) -&gt; String -&gt; PtrString
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty I386 byte register: &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681031064"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-300"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span>    </span><span id="local-6989586621681031078"><span class="annot"><span class="annottext">ppr32_reg_word :: a -&gt; SDoc
</span><a href="#local-6989586621681031078"><span class="hs-identifier hs-var hs-var">ppr32_reg_word</span></a></span></span><span> </span><span id="local-6989586621681031044"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681031044"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-303"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681031044"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-304"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ax&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-305"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%cx&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%dx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-306"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%si&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%di&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-307"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bp&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">7</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%sp&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-308"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty I386 word register&quot;</span></span><span>
</span><span id="line-309"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-310"></span><span>
</span><span id="line-311"></span><span>    </span><span id="local-6989586621681031077"><span class="annot"><span class="annottext">ppr32_reg_long :: Int -&gt; SDoc
</span><a href="#local-6989586621681031077"><span class="hs-identifier hs-var hs-var">ppr32_reg_long</span></a></span></span><span> </span><span id="local-6989586621681031027"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031027"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-312"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031027"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-313"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%eax&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ebx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-314"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ecx&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%edx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-315"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%esi&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%edi&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-316"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ebp&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">7</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%esp&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-317"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; PtrString
</span><a href="GHC.CmmToAsm.X86.Ppr.html#ppr_reg_float"><span class="hs-identifier hs-var">ppr_reg_float</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681031027"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-318"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-319"></span><span>
</span><span id="line-320"></span><span>    </span><span class="annot"><a href="#local-6989586621681031093"><span class="hs-identifier hs-type">ppr64_reg_no</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-321"></span><span>    </span><span id="local-6989586621681031093"><span class="annot"><span class="annottext">ppr64_reg_no :: Format -&gt; Int -&gt; SDoc
</span><a href="#local-6989586621681031093"><span class="hs-identifier hs-var hs-var">ppr64_reg_no</span></a></span></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall {a}. (Eq a, Num a, Show a) =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681031025"><span class="hs-identifier hs-var">ppr64_reg_byte</span></a></span><span>
</span><span id="line-322"></span><span>    </span><span class="annot"><a href="#local-6989586621681031093"><span class="hs-identifier hs-var">ppr64_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall {a}. (Eq a, Num a) =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681031024"><span class="hs-identifier hs-var">ppr64_reg_word</span></a></span><span>
</span><span id="line-323"></span><span>    </span><span class="annot"><a href="#local-6989586621681031093"><span class="hs-identifier hs-var">ppr64_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall {a}. (Eq a, Num a) =&gt; a -&gt; SDoc
</span><a href="#local-6989586621681031022"><span class="hs-identifier hs-var">ppr64_reg_long</span></a></span><span>
</span><span id="line-324"></span><span>    </span><span class="annot"><a href="#local-6989586621681031093"><span class="hs-identifier hs-var">ppr64_reg_no</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="#local-6989586621681031021"><span class="hs-identifier hs-var">ppr64_reg_quad</span></a></span><span>
</span><span id="line-325"></span><span>
</span><span id="line-326"></span><span>    </span><span id="local-6989586621681031025"><span class="annot"><span class="annottext">ppr64_reg_byte :: a -&gt; SDoc
</span><a href="#local-6989586621681031025"><span class="hs-identifier hs-var hs-var">ppr64_reg_byte</span></a></span></span><span> </span><span id="local-6989586621681030984"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030984"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-327"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030984"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-328"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%al&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bl&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-329"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%cl&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%dl&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-330"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%sil&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%dil&quot;</span></span><span class="hs-special">;</span><span> </span><span class="hs-comment">-- new 8-bit regs!</span><span>
</span><span id="line-331"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bpl&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">7</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%spl&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-332"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">8</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r8b&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">9</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r9b&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-333"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">10</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r10b&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">11</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r11b&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-334"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">12</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r12b&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">13</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r13b&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-335"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">14</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r14b&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">15</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r15b&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-336"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; PtrString) -&gt; String -&gt; PtrString
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty x86_64 byte register: &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">a -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030984"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-337"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-338"></span><span>
</span><span id="line-339"></span><span>    </span><span id="local-6989586621681031024"><span class="annot"><span class="annottext">ppr64_reg_word :: a -&gt; SDoc
</span><a href="#local-6989586621681031024"><span class="hs-identifier hs-var hs-var">ppr64_reg_word</span></a></span></span><span> </span><span id="local-6989586621681030949"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030949"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-340"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030949"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-341"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ax&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-342"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%cx&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%dx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-343"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%si&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%di&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-344"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%bp&quot;</span></span><span class="hs-special">;</span><span>     </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">7</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%sp&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-345"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">8</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r8w&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">9</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r9w&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-346"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">10</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r10w&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">11</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r11w&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-347"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">12</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r12w&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">13</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r13w&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-348"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">14</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r14w&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">15</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r15w&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-349"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty x86_64 word register&quot;</span></span><span>
</span><span id="line-350"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-351"></span><span>
</span><span id="line-352"></span><span>    </span><span id="local-6989586621681031022"><span class="annot"><span class="annottext">ppr64_reg_long :: a -&gt; SDoc
</span><a href="#local-6989586621681031022"><span class="hs-identifier hs-var hs-var">ppr64_reg_long</span></a></span></span><span> </span><span id="local-6989586621681030914"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030914"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-353"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621681030914"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-354"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%eax&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">1</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ebx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-355"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ecx&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">3</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%edx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-356"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%esi&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">5</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%edi&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-357"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%ebp&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">7</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%esp&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-358"></span><span>         </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">8</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r8d&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">9</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r9d&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-359"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">10</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r10d&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">11</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r11d&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-360"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">12</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r12d&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">13</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r13d&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-361"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">14</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r14d&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">a
</span><span class="hs-number">15</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r15d&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-362"></span><span>        </span><span class="annot"><span class="annottext">a
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty x86_64 register&quot;</span></span><span>
</span><span id="line-363"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-364"></span><span>
</span><span id="line-365"></span><span>    </span><span id="local-6989586621681031021"><span class="annot"><span class="annottext">ppr64_reg_quad :: Int -&gt; SDoc
</span><a href="#local-6989586621681031021"><span class="hs-identifier hs-var hs-var">ppr64_reg_quad</span></a></span></span><span> </span><span id="local-6989586621681030881"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030881"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span>
</span><span id="line-366"></span><span>      </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030881"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-367"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rax&quot;</span></span><span class="hs-special">;</span><span>      </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rbx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-368"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rcx&quot;</span></span><span class="hs-special">;</span><span>      </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rdx&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-369"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rsi&quot;</span></span><span class="hs-special">;</span><span>      </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">5</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rdi&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-370"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">6</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rbp&quot;</span></span><span class="hs-special">;</span><span>      </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">7</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rsp&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-371"></span><span>         </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r8&quot;</span></span><span class="hs-special">;</span><span>       </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">9</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r9&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-372"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">10</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r10&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">11</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r11&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-373"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">12</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r12&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">13</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r13&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-374"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">14</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r14&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">15</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%r15&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-375"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; PtrString
</span><a href="GHC.CmmToAsm.X86.Ppr.html#ppr_reg_float"><span class="hs-identifier hs-var">ppr_reg_float</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030881"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-376"></span><span>      </span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-377"></span><span>
</span><span id="line-378"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#ppr_reg_float"><span class="hs-identifier hs-type">ppr_reg_float</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span>
</span><span id="line-379"></span><span id="ppr_reg_float"><span class="annot"><span class="annottext">ppr_reg_float :: Int -&gt; PtrString
</span><a href="GHC.CmmToAsm.X86.Ppr.html#ppr_reg_float"><span class="hs-identifier hs-var hs-var">ppr_reg_float</span></a></span></span><span> </span><span id="local-6989586621681030880"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030880"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030880"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-380"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">16</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm0&quot;</span></span><span> </span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">17</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm1&quot;</span></span><span>
</span><span id="line-381"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">18</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm2&quot;</span></span><span> </span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">19</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm3&quot;</span></span><span>
</span><span id="line-382"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">20</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm4&quot;</span></span><span> </span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">21</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm5&quot;</span></span><span>
</span><span id="line-383"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">22</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm6&quot;</span></span><span> </span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">23</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm7&quot;</span></span><span>
</span><span id="line-384"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">24</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm8&quot;</span></span><span> </span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">25</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm9&quot;</span></span><span>
</span><span id="line-385"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">26</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm10&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">27</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm11&quot;</span></span><span>
</span><span id="line-386"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">28</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm12&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">29</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm13&quot;</span></span><span>
</span><span id="line-387"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">30</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm14&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">31</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%xmm15&quot;</span></span><span>
</span><span id="line-388"></span><span>        </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;very naughty x86 register&quot;</span></span><span>
</span><span id="line-389"></span><span>
</span><span id="line-390"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier hs-type">pprFormat</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-391"></span><span id="pprFormat"><span class="annot"><span class="annottext">pprFormat :: Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier hs-var hs-var">pprFormat</span></a></span></span><span> </span><span id="local-6989586621681030879"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030879"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-392"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030879"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-393"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;b&quot;</span></span><span>
</span><span id="line-394"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;w&quot;</span></span><span>
</span><span id="line-395"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;l&quot;</span></span><span>
</span><span id="line-396"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II64"><span class="hs-identifier hs-var">II64</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;q&quot;</span></span><span>
</span><span id="line-397"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ss&quot;</span></span><span>      </span><span class="hs-comment">-- &quot;scalar single-precision float&quot; (SSE2)</span><span>
</span><span id="line-398"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sd&quot;</span></span><span>      </span><span class="hs-comment">-- &quot;scalar double-precision float&quot; (SSE2)</span><span>
</span><span id="line-399"></span><span>                </span><span class="hs-special">)</span><span>
</span><span id="line-400"></span><span>
</span><span id="line-401"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat_x87"><span class="hs-identifier hs-type">pprFormat_x87</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-402"></span><span id="pprFormat_x87"><span class="annot"><span class="annottext">pprFormat_x87 :: Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat_x87"><span class="hs-identifier hs-var hs-var">pprFormat_x87</span></a></span></span><span> </span><span id="local-6989586621681030874"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030874"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-403"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">(PtrString -&gt; SDoc) -&gt; PtrString -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030874"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-404"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;s&quot;</span></span><span>
</span><span id="line-405"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;l&quot;</span></span><span>
</span><span id="line-406"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><span class="hs-identifier">_</span></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.pprFormat_x87&quot;</span></span><span>
</span><span id="line-407"></span><span>
</span><span id="line-408"></span><span>
</span><span id="line-409"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprCond"><span class="hs-identifier hs-type">pprCond</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Cond.html#Cond"><span class="hs-identifier hs-type">Cond</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-410"></span><span id="pprCond"><span class="annot"><span class="annottext">pprCond :: Cond -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprCond"><span class="hs-identifier hs-var hs-var">pprCond</span></a></span></span><span> </span><span id="local-6989586621681030872"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030872"><span class="hs-identifier hs-var">c</span></a></span></span><span>
</span><span id="line-411"></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030872"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-keyword">of</span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-412"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#GEU"><span class="hs-identifier hs-var">GEU</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ae&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#LU"><span class="hs-identifier hs-var">LU</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;b&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-413"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#EQQ"><span class="hs-identifier hs-var">EQQ</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;e&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#GTT"><span class="hs-identifier hs-var">GTT</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;g&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-414"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#GE"><span class="hs-identifier hs-var">GE</span></a></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ge&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#GU"><span class="hs-identifier hs-var">GU</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;a&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-415"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#LTT"><span class="hs-identifier hs-var">LTT</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;l&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#LE"><span class="hs-identifier hs-var">LE</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;le&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-416"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#LEU"><span class="hs-identifier hs-var">LEU</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;be&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#NE"><span class="hs-identifier hs-var">NE</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ne&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-417"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#NEG"><span class="hs-identifier hs-var">NEG</span></a></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;s&quot;</span></span><span class="hs-special">;</span><span>    </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#POS"><span class="hs-identifier hs-var">POS</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ns&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-418"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#CARRY"><span class="hs-identifier hs-var">CARRY</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;c&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#OFLO"><span class="hs-identifier hs-var">OFLO</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;o&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-419"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#PARITY"><span class="hs-identifier hs-var">PARITY</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;p&quot;</span></span><span class="hs-special">;</span><span>   </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#NOTPARITY"><span class="hs-identifier hs-var">NOTPARITY</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;np&quot;</span></span><span class="hs-special">;</span><span>
</span><span id="line-420"></span><span>                </span><span class="annot"><span class="annottext">Cond
</span><a href="GHC.CmmToAsm.X86.Cond.html#ALWAYS"><span class="hs-identifier hs-var">ALWAYS</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mp&quot;</span></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-421"></span><span>
</span><span id="line-422"></span><span>
</span><span id="line-423"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-type">pprImm</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#Imm"><span class="hs-identifier hs-type">Imm</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-424"></span><span id="pprImm"><span class="annot"><span class="annottext">pprImm :: Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var hs-var">pprImm</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span id="local-6989586621681030853"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030853"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030853"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-425"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInteger"><span class="hs-identifier hs-type">ImmInteger</span></a></span><span> </span><span id="local-6989586621681030851"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030851"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#integer"><span class="hs-identifier hs-var">integer</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030851"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-426"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmCLbl"><span class="hs-identifier hs-type">ImmCLbl</span></a></span><span> </span><span id="local-6989586621681030848"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030848"><span class="hs-identifier hs-var">l</span></a></span></span><span class="hs-special">)</span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030848"><span class="hs-identifier hs-var">l</span></a></span><span>
</span><span id="line-427"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmIndex"><span class="hs-identifier hs-type">ImmIndex</span></a></span><span> </span><span id="local-6989586621681030846"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030846"><span class="hs-identifier hs-var">l</span></a></span></span><span> </span><span id="local-6989586621681030845"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030845"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030846"><span class="hs-identifier hs-var">l</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030845"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-428"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmLit"><span class="hs-identifier hs-type">ImmLit</span></a></span><span> </span><span id="local-6989586621681030843"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030843"><span class="hs-identifier hs-var">s</span></a></span></span><span class="hs-special">)</span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030843"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-429"></span><span>
</span><span id="line-430"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmFloat"><span class="hs-identifier hs-type">ImmFloat</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;naughty float immediate&quot;</span></span><span>
</span><span id="line-431"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmDouble"><span class="hs-identifier hs-type">ImmDouble</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;naughty double immediate&quot;</span></span><span>
</span><span id="line-432"></span><span>
</span><span id="line-433"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmConstantSum"><span class="hs-identifier hs-type">ImmConstantSum</span></a></span><span> </span><span id="local-6989586621681030839"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030839"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621681030838"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030838"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030839"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030838"><span class="hs-identifier hs-var">b</span></a></span><span>
</span><span id="line-434"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmConstantDiff"><span class="hs-identifier hs-type">ImmConstantDiff</span></a></span><span> </span><span id="local-6989586621681030836"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030836"><span class="hs-identifier hs-var">a</span></a></span></span><span> </span><span id="local-6989586621681030835"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030835"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030836"><span class="hs-identifier hs-var">a</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'-'</span></span><span>
</span><span id="line-435"></span><span>                            </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#lparen"><span class="hs-identifier hs-var">lparen</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030835"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#rparen"><span class="hs-identifier hs-var">rparen</span></a></span><span>
</span><span id="line-436"></span><span>
</span><span id="line-437"></span><span>
</span><span id="line-438"></span><span>
</span><span id="line-439"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-type">pprAddr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrMode"><span class="hs-identifier hs-type">AddrMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-440"></span><span id="pprAddr"><span class="annot"><span class="annottext">pprAddr :: Platform -&gt; AddrMode -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-var hs-var">pprAddr</span></a></span></span><span> </span><span id="local-6989586621681030831"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030831"><span class="hs-identifier hs-var">_platform</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmAddr"><span class="hs-identifier hs-type">ImmAddr</span></a></span><span> </span><span id="local-6989586621681030829"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030829"><span class="hs-identifier hs-var">imm</span></a></span></span><span> </span><span id="local-6989586621681030828"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030828"><span class="hs-identifier hs-var">off</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-441"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681030827"><span class="annot"><span class="annottext">pp_imm :: SDoc
</span><a href="#local-6989586621681030827"><span class="hs-identifier hs-var hs-var">pp_imm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030829"><span class="hs-identifier hs-var">imm</span></a></span><span>
</span><span id="line-442"></span><span>    </span><span class="hs-keyword">in</span><span>
</span><span id="line-443"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030828"><span class="hs-identifier hs-var">off</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">then</span><span>
</span><span id="line-444"></span><span>        </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030827"><span class="hs-identifier hs-var">pp_imm</span></a></span><span>
</span><span id="line-445"></span><span>    </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030828"><span class="hs-identifier hs-var">off</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">then</span><span>
</span><span id="line-446"></span><span>        </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030827"><span class="hs-identifier hs-var">pp_imm</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030828"><span class="hs-identifier hs-var">off</span></a></span><span>
</span><span id="line-447"></span><span>    </span><span class="hs-keyword">else</span><span>
</span><span id="line-448"></span><span>        </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030827"><span class="hs-identifier hs-var">pp_imm</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'+'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030828"><span class="hs-identifier hs-var">off</span></a></span><span>
</span><span id="line-449"></span><span>
</span><span id="line-450"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-var">pprAddr</span></a></span><span> </span><span id="local-6989586621681030825"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030825"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrBaseIndex"><span class="hs-identifier hs-type">AddrBaseIndex</span></a></span><span> </span><span id="local-6989586621681030823"><span class="annot"><span class="annottext">EABase
</span><a href="#local-6989586621681030823"><span class="hs-identifier hs-var">base</span></a></span></span><span> </span><span id="local-6989586621681030822"><span class="annot"><span class="annottext">EAIndex
</span><a href="#local-6989586621681030822"><span class="hs-identifier hs-var">index</span></a></span></span><span> </span><span id="local-6989586621681030821"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030821"><span class="hs-identifier hs-var">displacement</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-451"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span>
</span><span id="line-452"></span><span>        </span><span id="local-6989586621681030820"><span class="annot"><span class="annottext">pp_disp :: SDoc
</span><a href="#local-6989586621681030820"><span class="hs-identifier hs-var hs-var">pp_disp</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="#local-6989586621681030819"><span class="hs-identifier hs-var">ppr_disp</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030821"><span class="hs-identifier hs-var">displacement</span></a></span><span>
</span><span id="line-453"></span><span>        </span><span id="local-6989586621681030818"><span class="annot"><span class="annottext">pp_off :: SDoc -&gt; SDoc
</span><a href="#local-6989586621681030818"><span class="hs-identifier hs-var hs-var">pp_off</span></a></span></span><span> </span><span id="local-6989586621681030817"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030817"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030820"><span class="hs-identifier hs-var">pp_disp</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'('</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030817"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span>
</span><span id="line-454"></span><span>        </span><span id="local-6989586621681030816"><span class="annot"><span class="annottext">pp_reg :: Reg -&gt; SDoc
</span><a href="#local-6989586621681030816"><span class="hs-identifier hs-var hs-var">pp_reg</span></a></span></span><span> </span><span id="local-6989586621681030815"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030815"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030825"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030825"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030815"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-455"></span><span>    </span><span class="hs-keyword">in</span><span>
</span><span id="line-456"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">EABase
</span><a href="#local-6989586621681030823"><span class="hs-identifier hs-var">base</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">EAIndex
</span><a href="#local-6989586621681030822"><span class="hs-identifier hs-var">index</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-457"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">EABase
</span><a href="GHC.CmmToAsm.X86.Regs.html#EABaseNone"><span class="hs-identifier hs-var">EABaseNone</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><span class="annottext">EAIndex
</span><a href="GHC.CmmToAsm.X86.Regs.html#EAIndexNone"><span class="hs-identifier hs-var">EAIndexNone</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030820"><span class="hs-identifier hs-var">pp_disp</span></a></span><span>
</span><span id="line-458"></span><span>      </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EABaseReg"><span class="hs-identifier hs-type">EABaseReg</span></a></span><span> </span><span id="local-6989586621681030810"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030810"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">EAIndex
</span><a href="GHC.CmmToAsm.X86.Regs.html#EAIndexNone"><span class="hs-identifier hs-var">EAIndexNone</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681030818"><span class="hs-identifier hs-var">pp_off</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; SDoc
</span><a href="#local-6989586621681030816"><span class="hs-identifier hs-var">pp_reg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030810"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-459"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">EABase
</span><a href="GHC.CmmToAsm.X86.Regs.html#EABaseRip"><span class="hs-identifier hs-var">EABaseRip</span></a></span><span class="hs-special">,</span><span>   </span><span class="annot"><span class="annottext">EAIndex
</span><a href="GHC.CmmToAsm.X86.Regs.html#EAIndexNone"><span class="hs-identifier hs-var">EAIndexNone</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681030818"><span class="hs-identifier hs-var">pp_off</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;%rip&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-460"></span><span>      </span><span class="hs-special">(</span><span class="annot"><span class="annottext">EABase
</span><a href="GHC.CmmToAsm.X86.Regs.html#EABaseNone"><span class="hs-identifier hs-var">EABaseNone</span></a></span><span class="hs-special">,</span><span>  </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EAIndex"><span class="hs-identifier hs-type">EAIndex</span></a></span><span> </span><span id="local-6989586621681030807"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030807"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621681030806"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030806"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681030818"><span class="hs-identifier hs-var">pp_off</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Reg -&gt; SDoc
</span><a href="#local-6989586621681030816"><span class="hs-identifier hs-var">pp_reg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030807"><span class="hs-identifier hs-var">r</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030806"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-461"></span><span>      </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EABaseReg"><span class="hs-identifier hs-type">EABaseReg</span></a></span><span> </span><span id="local-6989586621681030805"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030805"><span class="hs-identifier hs-var">b</span></a></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EAIndex"><span class="hs-identifier hs-type">EAIndex</span></a></span><span> </span><span id="local-6989586621681030804"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030804"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span id="local-6989586621681030803"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030803"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="#local-6989586621681030818"><span class="hs-identifier hs-var">pp_off</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; SDoc
</span><a href="#local-6989586621681030816"><span class="hs-identifier hs-var">pp_reg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030805"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Reg -&gt; SDoc
</span><a href="#local-6989586621681030816"><span class="hs-identifier hs-var">pp_reg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030804"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-462"></span><span>                                       </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030803"><span class="hs-identifier hs-var">i</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-463"></span><span>      </span><span class="annot"><span class="annottext">(EABase, EAIndex)
</span><span class="hs-identifier">_</span></span><span>                         </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.pprAddr: no match&quot;</span></span><span>
</span><span id="line-464"></span><span>
</span><span id="line-465"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-466"></span><span>    </span><span id="local-6989586621681030819"><span class="annot"><span class="annottext">ppr_disp :: Imm -&gt; SDoc
</span><a href="#local-6989586621681030819"><span class="hs-identifier hs-var hs-var">ppr_disp</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#empty"><span class="hs-identifier hs-var">empty</span></a></span><span>
</span><span id="line-467"></span><span>    </span><span class="annot"><a href="#local-6989586621681030819"><span class="hs-identifier hs-var">ppr_disp</span></a></span><span> </span><span id="local-6989586621681030800"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030800"><span class="hs-identifier hs-var">imm</span></a></span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030800"><span class="hs-identifier hs-var">imm</span></a></span><span>
</span><span id="line-468"></span><span>
</span><span id="line-469"></span><span class="hs-comment">-- | Print section header and appropriate alignment for that section.</span><span>
</span><span id="line-470"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-type">pprSectionAlign</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.html#Section"><span class="hs-identifier hs-type">Section</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-471"></span><span id="pprSectionAlign"><span class="annot"><span class="annottext">pprSectionAlign :: NCGConfig -&gt; Section -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-var hs-var">pprSectionAlign</span></a></span></span><span> </span><span id="local-6989586621681030799"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030799"><span class="hs-identifier hs-var">_config</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#Section"><span class="hs-identifier hs-type">Section</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#OtherSection"><span class="hs-identifier hs-type">OtherSection</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-472"></span><span>     </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.pprSectionAlign: unknown section&quot;</span></span><span>
</span><span id="line-473"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprSectionAlign"><span class="hs-identifier hs-var">pprSectionAlign</span></a></span><span> </span><span id="local-6989586621681030797"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030797"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span id="local-6989586621681030796"><span class="annot"><span class="annottext">sec :: Section
</span><a href="#local-6989586621681030796"><span class="hs-identifier hs-var">sec</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.html#Section"><span class="hs-identifier hs-type">Section</span></a></span><span> </span><span id="local-6989586621681030795"><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030795"><span class="hs-identifier hs-var">seg</span></a></span></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-474"></span><span>    </span><span class="annot"><span class="annottext">NCGConfig -&gt; Section -&gt; SDoc
</span><a href="GHC.CmmToAsm.Ppr.html#pprSectionHeader"><span class="hs-identifier hs-var">pprSectionHeader</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030797"><span class="hs-identifier hs-var">config</span></a></span><span> </span><span class="annot"><span class="annottext">Section
</span><a href="#local-6989586621681030796"><span class="hs-identifier hs-var">sec</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span>
</span><span id="line-475"></span><span>    </span><span class="annot"><span class="annottext">Platform -&gt; SectionType -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlignForSection"><span class="hs-identifier hs-var">pprAlignForSection</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030797"><span class="hs-identifier hs-var">config</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030795"><span class="hs-identifier hs-var">seg</span></a></span><span>
</span><span id="line-476"></span><span>
</span><span id="line-477"></span><span class="hs-comment">-- | Print appropriate alignment for the given section type.</span><span>
</span><span id="line-478"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlignForSection"><span class="hs-identifier hs-type">pprAlignForSection</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.html#SectionType"><span class="hs-identifier hs-type">SectionType</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-479"></span><span id="pprAlignForSection"><span class="annot"><span class="annottext">pprAlignForSection :: Platform -&gt; SectionType -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAlignForSection"><span class="hs-identifier hs-var hs-var">pprAlignForSection</span></a></span></span><span> </span><span id="local-6989586621681030793"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030793"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681030792"><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030792"><span class="hs-identifier hs-var">seg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-480"></span><span>    </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;.align &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span>
</span><span id="line-481"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030793"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-482"></span><span>      </span><span class="hs-comment">-- Darwin: alignments are given as shifts.</span><span>
</span><span id="line-483"></span><span>      </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span>
</span><span id="line-484"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030793"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-485"></span><span>          </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030792"><span class="hs-identifier hs-var">seg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-486"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#ReadOnlyData16"><span class="hs-identifier hs-var">ReadOnlyData16</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span>
</span><span id="line-487"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#CString"><span class="hs-identifier hs-var">CString</span></a></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-488"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">2</span></span><span>
</span><span id="line-489"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-490"></span><span>          </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030792"><span class="hs-identifier hs-var">seg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-491"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#ReadOnlyData16"><span class="hs-identifier hs-var">ReadOnlyData16</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span>
</span><span id="line-492"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#CString"><span class="hs-identifier hs-var">CString</span></a></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-493"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span>
</span><span id="line-494"></span><span>      </span><span class="hs-comment">-- Other: alignments are given as bytes.</span><span>
</span><span id="line-495"></span><span>      </span><span class="annot"><span class="annottext">OS
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-496"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030793"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-497"></span><span>          </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030792"><span class="hs-identifier hs-var">seg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-498"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#Text"><span class="hs-identifier hs-var">Text</span></a></span><span>              </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;4,0x90&quot;</span></span><span>
</span><span id="line-499"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#ReadOnlyData16"><span class="hs-identifier hs-var">ReadOnlyData16</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">16</span></span><span>
</span><span id="line-500"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#CString"><span class="hs-identifier hs-var">CString</span></a></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-501"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">4</span></span><span>
</span><span id="line-502"></span><span>       </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-503"></span><span>          </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">SectionType
</span><a href="#local-6989586621681030792"><span class="hs-identifier hs-var">seg</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-504"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#ReadOnlyData16"><span class="hs-identifier hs-var">ReadOnlyData16</span></a></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">16</span></span><span>
</span><span id="line-505"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><a href="GHC.Cmm.html#CString"><span class="hs-identifier hs-var">CString</span></a></span><span>           </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-506"></span><span>           </span><span class="annot"><span class="annottext">SectionType
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">8</span></span><span>
</span><span id="line-507"></span><span>
</span><span id="line-508"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprDataItem"><span class="hs-identifier hs-type">pprDataItem</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Config.html#NCGConfig"><span class="hs-identifier hs-type">NCGConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmLit"><span class="hs-identifier hs-type">CmmLit</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-509"></span><span id="pprDataItem"><span class="annot"><span class="annottext">pprDataItem :: NCGConfig -&gt; CmmLit -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprDataItem"><span class="hs-identifier hs-var hs-var">pprDataItem</span></a></span></span><span> </span><span id="local-6989586621681030789"><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030789"><span class="hs-identifier hs-var">config</span></a></span></span><span> </span><span id="local-6989586621681030788"><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span></span><span>
</span><span id="line-510"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Format -&gt; CmmLit -&gt; [SDoc]
</span><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CmmType -&gt; Format
</span><a href="GHC.CmmToAsm.Format.html#cmmTypeFormat"><span class="hs-identifier hs-var">cmmTypeFormat</span></a></span><span> </span><span class="annot"><span class="annottext">(CmmType -&gt; Format) -&gt; CmmType -&gt; Format
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; CmmLit -&gt; CmmType
</span><a href="GHC.Cmm.Expr.html#cmmLitType"><span class="hs-identifier hs-var">cmmLitType</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030784"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-511"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-512"></span><span>        </span><span id="local-6989586621681030784"><span class="annot"><span class="annottext">platform :: Platform
</span><a href="#local-6989586621681030784"><span class="hs-identifier hs-var hs-var">platform</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">NCGConfig -&gt; Platform
</span><a href="GHC.CmmToAsm.Config.html#ncgPlatform"><span class="hs-identifier hs-var hs-var">ncgPlatform</span></a></span><span> </span><span class="annot"><span class="annottext">NCGConfig
</span><a href="#local-6989586621681030789"><span class="hs-identifier hs-var">config</span></a></span><span>
</span><span id="line-513"></span><span>        </span><span id="local-6989586621681030783"><span class="annot"><span class="annottext">imm :: Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var hs-var">imm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CmmLit -&gt; Imm
</span><a href="GHC.CmmToAsm.X86.Regs.html#litToImm"><span class="hs-identifier hs-var">litToImm</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span><span>
</span><span id="line-514"></span><span>
</span><span id="line-515"></span><span>        </span><span class="hs-comment">-- These seem to be common:</span><span>
</span><span id="line-516"></span><span>        </span><span id="local-6989586621681030787"><span class="annot"><span class="annottext">ppr_item :: Format -&gt; CmmLit -&gt; [SDoc]
</span><a href="#local-6989586621681030787"><span class="hs-identifier hs-var hs-var">ppr_item</span></a></span></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>   </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.byte\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-517"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span>  </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.word\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-518"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span>  </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-519"></span><span>
</span><span id="line-520"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span>  </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmFloat"><span class="hs-identifier hs-type">CmmFloat</span></a></span><span> </span><span id="local-6989586621681030767"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621681030767"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="annot"><span class="annottext">Width
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-521"></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681030764"><span class="annot"><span class="annottext">bs :: [Int]
</span><a href="#local-6989586621681030764"><span class="hs-identifier hs-var hs-var">bs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Float -&gt; [Int]
</span><a href="GHC.CmmToAsm.Ppr.html#floatToBytes"><span class="hs-identifier hs-var">floatToBytes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Float
forall a. Fractional a =&gt; Rational -&gt; a
</span><a href="../../base/src/GHC.Real.html#fromRational"><span class="hs-identifier hs-var">fromRational</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621681030767"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-522"></span><span>             </span><span class="hs-keyword">in</span><span>  </span><span class="annot"><span class="annottext">(Int -&gt; SDoc) -&gt; [Int] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621681030762"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030762"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.byte\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Imm
</span><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-var">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030762"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Int]
</span><a href="#local-6989586621681030764"><span class="hs-identifier hs-var">bs</span></a></span><span>
</span><span id="line-523"></span><span>
</span><span id="line-524"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmFloat"><span class="hs-identifier hs-type">CmmFloat</span></a></span><span> </span><span id="local-6989586621681030761"><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621681030761"><span class="hs-identifier hs-var">r</span></a></span></span><span> </span><span class="annot"><span class="annottext">Width
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-525"></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621681030758"><span class="annot"><span class="annottext">bs :: [Int]
</span><a href="#local-6989586621681030758"><span class="hs-identifier hs-var hs-var">bs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Double -&gt; [Int]
</span><a href="GHC.CmmToAsm.Ppr.html#doubleToBytes"><span class="hs-identifier hs-var">doubleToBytes</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Rational -&gt; Double
forall a. Fractional a =&gt; Rational -&gt; a
</span><a href="../../base/src/GHC.Real.html#fromRational"><span class="hs-identifier hs-var">fromRational</span></a></span><span> </span><span class="annot"><span class="annottext">Rational
</span><a href="#local-6989586621681030761"><span class="hs-identifier hs-var">r</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-526"></span><span>             </span><span class="hs-keyword">in</span><span>  </span><span class="annot"><span class="annottext">(Int -&gt; SDoc) -&gt; [Int] -&gt; [SDoc]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span id="local-6989586621681030756"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030756"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.byte\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; Imm
</span><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-var">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030756"><span class="hs-identifier hs-var">b</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Int]
</span><a href="#local-6989586621681030758"><span class="hs-identifier hs-var">bs</span></a></span><span>
</span><span id="line-527"></span><span>
</span><span id="line-528"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II64"><span class="hs-identifier hs-var">II64</span></a></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-529"></span><span>            </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#platformOS"><span class="hs-identifier hs-var">platformOS</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030784"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-530"></span><span>              </span><span class="annot"><span class="annottext">OS
</span><a href="../../ghc-boot/src/GHC.Platform.html#OSDarwin"><span class="hs-identifier hs-var">OSDarwin</span></a></span><span>
</span><span id="line-531"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030784"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-532"></span><span>                  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-533"></span><span>                  </span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmInt"><span class="hs-identifier hs-type">CmmInt</span></a></span><span> </span><span id="local-6989586621681030754"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030754"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="annot"><span class="annottext">Width
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-534"></span><span>                      </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long\t&quot;</span></span><span>
</span><span id="line-535"></span><span>                          </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word32 -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Word32
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030754"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word32"><span class="hs-identifier hs-type">Word32</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-536"></span><span>                       </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long\t&quot;</span></span><span>
</span><span id="line-537"></span><span>                          </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#int"><span class="hs-identifier hs-var">int</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Word32 -&gt; Int
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span>
</span><span id="line-538"></span><span>                              </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer -&gt; Word32
forall a b. (Integral a, Num b) =&gt; a -&gt; b
</span><a href="../../base/src/GHC.Real.html#fromIntegral"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030754"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Int -&gt; Integer
forall a. Bits a =&gt; a -&gt; Int -&gt; a
</span><a href="../../base/src/Data.Bits.html#shiftR"><span class="hs-operator hs-var">`shiftR`</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">32</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Word.html#Word32"><span class="hs-identifier hs-type">Word32</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-539"></span><span>                  </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; [SDoc]
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.ppr_item: no match for II64&quot;</span></span><span>
</span><span id="line-540"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-541"></span><span>                  </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.quad\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-542"></span><span>              </span><span class="annot"><span class="annottext">OS
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-543"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030784"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-544"></span><span>                  </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.quad\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-545"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-546"></span><span>                  </span><span class="hs-comment">-- x86_64: binutils can't handle the R_X86_64_PC64</span><span>
</span><span id="line-547"></span><span>                  </span><span class="hs-comment">-- relocation type, which means we can't do</span><span>
</span><span id="line-548"></span><span>                  </span><span class="hs-comment">-- pc-relative 64-bit addresses. Fortunately we're</span><span>
</span><span id="line-549"></span><span>                  </span><span class="hs-comment">-- assuming the small memory model, in which all such</span><span>
</span><span id="line-550"></span><span>                  </span><span class="hs-comment">-- offsets will fit into 32 bits, so we have to stick</span><span>
</span><span id="line-551"></span><span>                  </span><span class="hs-comment">-- to 32-bit offset fields and modify the RTS</span><span>
</span><span id="line-552"></span><span>                  </span><span class="hs-comment">-- appropriately</span><span>
</span><span id="line-553"></span><span>                  </span><span class="hs-comment">--</span><span>
</span><span id="line-554"></span><span>                  </span><span class="hs-comment">-- See Note [x86-64-relative] in includes/rts/storage/InfoTables.h</span><span>
</span><span id="line-555"></span><span>                  </span><span class="hs-comment">--</span><span>
</span><span id="line-556"></span><span>                  </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><a href="#local-6989586621681030788"><span class="hs-identifier hs-var">lit</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-557"></span><span>                  </span><span class="hs-comment">-- A relative relocation:</span><span>
</span><span id="line-558"></span><span>                  </span><span class="annot"><a href="GHC.Cmm.Expr.html#CmmLabelDiffOff"><span class="hs-identifier hs-type">CmmLabelDiffOff</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Width
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-559"></span><span>                      </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-560"></span><span>                       </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.long\t0&quot;</span></span><span class="hs-special">]</span><span>
</span><span id="line-561"></span><span>                  </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-562"></span><span>                      </span><span class="hs-special">[</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.quad\t&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030783"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-563"></span><span>
</span><span id="line-564"></span><span>        </span><span class="annot"><a href="#local-6989586621681030787"><span class="hs-identifier hs-var">ppr_item</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">CmmLit
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-565"></span><span>                </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; [SDoc]
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.ppr_item: no match&quot;</span></span><span>
</span><span id="line-566"></span><span>
</span><span id="line-567"></span><span>
</span><span id="line-568"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#asmComment"><span class="hs-identifier hs-type">asmComment</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-569"></span><span id="asmComment"><span class="annot"><span class="annottext">asmComment :: SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#asmComment"><span class="hs-identifier hs-var hs-var">asmComment</span></a></span></span><span> </span><span id="local-6989586621681030750"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030750"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#whenPprDebug"><span class="hs-identifier hs-var">whenPprDebug</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;# &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030750"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-570"></span><span>
</span><span id="line-571"></span><span class="annot"><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-type">pprInstr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-572"></span><span id="pprInstr"><span class="annot"><span class="annottext">pprInstr :: Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var hs-var">pprInstr</span></a></span></span><span> </span><span id="local-6989586621681030748"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681030747"><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030747"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030747"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-573"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#COMMENT"><span class="hs-identifier hs-type">COMMENT</span></a></span><span> </span><span id="local-6989586621681030745"><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681030745"><span class="hs-identifier hs-var">s</span></a></span></span><span>
</span><span id="line-574"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#asmComment"><span class="hs-identifier hs-var">asmComment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FastString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ftext"><span class="hs-identifier hs-var">ftext</span></a></span><span> </span><span class="annot"><span class="annottext">FastString
</span><a href="#local-6989586621681030745"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-575"></span><span>
</span><span id="line-576"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LOCATION"><span class="hs-identifier hs-type">LOCATION</span></a></span><span> </span><span id="local-6989586621681030743"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030743"><span class="hs-identifier hs-var">file</span></a></span></span><span> </span><span id="local-6989586621681030742"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030742"><span class="hs-identifier hs-var">line</span></a></span></span><span> </span><span id="local-6989586621681030741"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030741"><span class="hs-identifier hs-var">col</span></a></span></span><span> </span><span id="local-6989586621681030740"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621681030740"><span class="hs-identifier hs-var">_name</span></a></span></span><span>
</span><span id="line-577"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\t.loc &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030743"><span class="hs-identifier hs-var">file</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030742"><span class="hs-identifier hs-var">line</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%2B%3E"><span class="hs-operator hs-var">&lt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030741"><span class="hs-identifier hs-var">col</span></a></span><span>
</span><span id="line-578"></span><span>
</span><span id="line-579"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#DELTA"><span class="hs-identifier hs-type">DELTA</span></a></span><span> </span><span id="local-6989586621681030738"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030738"><span class="hs-identifier hs-var">d</span></a></span></span><span>
</span><span id="line-580"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#asmComment"><span class="hs-identifier hs-var">asmComment</span></a></span><span> </span><span class="annot"><span class="annottext">(SDoc -&gt; SDoc) -&gt; SDoc -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tdelta = &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030738"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-581"></span><span>
</span><span id="line-582"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#NEWBLOCK"><span class="hs-identifier hs-type">NEWBLOCK</span></a></span><span> </span><span class="annot"><span class="annottext">BlockId
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-583"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pprInstr: NEWBLOCK&quot;</span></span><span>
</span><span id="line-584"></span><span>
</span><span id="line-585"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#UNWIND"><span class="hs-identifier hs-type">UNWIND</span></a></span><span> </span><span id="local-6989586621681030735"><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030735"><span class="hs-identifier hs-var">lbl</span></a></span></span><span> </span><span id="local-6989586621681030734"><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681030734"><span class="hs-identifier hs-var">d</span></a></span></span><span>
</span><span id="line-586"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#asmComment"><span class="hs-identifier hs-var">asmComment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tunwind = &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">UnwindTable
</span><a href="#local-6989586621681030734"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-587"></span><span>         </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030735"><span class="hs-identifier hs-var">lbl</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#colon"><span class="hs-identifier hs-var">colon</span></a></span><span>
</span><span id="line-588"></span><span>
</span><span id="line-589"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LDATA"><span class="hs-identifier hs-type">LDATA</span></a></span><span> </span><span class="annot"><span class="annottext">Section
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">(Alignment, RawCmmStatics)
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-590"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pprInstr: LDATA&quot;</span></span><span>
</span><span id="line-591"></span><span>
</span><span id="line-592"></span><span class="hs-comment">{-
   SPILL reg slot
      -&gt; hcat [
           text &quot;\tSPILL&quot;,
           char ' ',
           pprUserReg reg,
           comma,
           text &quot;SLOT&quot; &lt;&gt; parens (int slot)]

   RELOAD slot reg
      -&gt; hcat [
        text &quot;\tRELOAD&quot;,
        char ' ',
        text &quot;SLOT&quot; &lt;&gt; parens (int slot),
        comma,
        pprUserReg reg]
-}</span><span>
</span><span id="line-609"></span><span>
</span><span id="line-610"></span><span>   </span><span class="hs-comment">-- Replace 'mov $0x0,%reg' by 'xor %reg,%reg', which is smaller and cheaper.</span><span>
</span><span id="line-611"></span><span>   </span><span class="hs-comment">-- The code generator catches most of these already, but not all.</span><span>
</span><span id="line-612"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MOV"><span class="hs-identifier hs-type">MOV</span></a></span><span> </span><span id="local-6989586621681030730"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030730"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030728"><span class="annot"><span class="annottext">dst :: Operand
</span><a href="#local-6989586621681030728"><span class="hs-identifier hs-var">dst</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>
</span><span id="line-613"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Format -&gt; Operand -&gt; Operand -&gt; Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#XOR"><span class="hs-identifier hs-var">XOR</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030725"><span class="hs-identifier hs-var">format'</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030728"><span class="hs-identifier hs-var">dst</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030728"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-614"></span><span>        </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681030725"><span class="annot"><span class="annottext">format' :: Format
</span><a href="#local-6989586621681030725"><span class="hs-identifier hs-var hs-var">format'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030730"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-615"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II64"><span class="hs-identifier hs-var">II64</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span>          </span><span class="hs-comment">-- 32-bit version is equivalent, and smaller</span><span>
</span><span id="line-616"></span><span>                </span><span class="annot"><span class="annottext">Format
</span><span class="hs-identifier">_</span></span><span>    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030730"><span class="hs-identifier hs-var">format</span></a></span><span>
</span><span id="line-617"></span><span>
</span><span id="line-618"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MOV"><span class="hs-identifier hs-type">MOV</span></a></span><span> </span><span id="local-6989586621681030724"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030724"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030723"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030723"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030722"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030722"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-619"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mov&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030724"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030723"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030722"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-620"></span><span>
</span><span id="line-621"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CMOV"><span class="hs-identifier hs-type">CMOV</span></a></span><span> </span><span id="local-6989586621681030719"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030719"><span class="hs-identifier hs-var">cc</span></a></span></span><span> </span><span id="local-6989586621681030718"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030718"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030717"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030717"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030716"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030716"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-622"></span><span>     </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Cond -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030715"><span class="hs-identifier hs-var">pprCondOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cmov&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030718"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030719"><span class="hs-identifier hs-var">cc</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030717"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030716"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-623"></span><span>
</span><span id="line-624"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MOVZxL"><span class="hs-identifier hs-type">MOVZxL</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span id="local-6989586621681030713"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030713"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030712"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030712"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-625"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mov&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030713"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030712"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-626"></span><span>        </span><span class="hs-comment">-- 32-to-64 bit zero extension on x86_64 is accomplished by a simple</span><span>
</span><span id="line-627"></span><span>        </span><span class="hs-comment">-- movl.  But we represent it as a MOVZxL instruction, because</span><span>
</span><span id="line-628"></span><span>        </span><span class="hs-comment">-- the reg alloc would tend to throw away a plain reg-to-reg</span><span>
</span><span id="line-629"></span><span>        </span><span class="hs-comment">-- move, and we still want it to do that.</span><span>
</span><span id="line-630"></span><span>
</span><span id="line-631"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MOVZxL"><span class="hs-identifier hs-type">MOVZxL</span></a></span><span> </span><span id="local-6989586621681030711"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030711"><span class="hs-identifier hs-var">formats</span></a></span></span><span> </span><span id="local-6989586621681030710"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030710"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030709"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030709"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-632"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030708"><span class="hs-identifier hs-var">pprFormatOpOpCoerce</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;movz&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030711"><span class="hs-identifier hs-var">formats</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030710"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030709"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-633"></span><span>        </span><span class="hs-comment">-- zero-extension only needs to extend to 32 bits: on x86_64,</span><span>
</span><span id="line-634"></span><span>        </span><span class="hs-comment">-- the remaining zero-extension to 64 bits is automatic, and the 32-bit</span><span>
</span><span id="line-635"></span><span>        </span><span class="hs-comment">-- instruction is shorter.</span><span>
</span><span id="line-636"></span><span>
</span><span id="line-637"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MOVSxL"><span class="hs-identifier hs-type">MOVSxL</span></a></span><span> </span><span id="local-6989586621681030706"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030706"><span class="hs-identifier hs-var">formats</span></a></span></span><span> </span><span id="local-6989586621681030705"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030705"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030704"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030704"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-638"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030708"><span class="hs-identifier hs-var">pprFormatOpOpCoerce</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;movs&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030706"><span class="hs-identifier hs-var">formats</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030705"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030704"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-639"></span><span>
</span><span id="line-640"></span><span>   </span><span class="hs-comment">-- here we do some patching, since the physical registers are only set late</span><span>
</span><span id="line-641"></span><span>   </span><span class="hs-comment">-- in the code generation.</span><span>
</span><span id="line-642"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LEA"><span class="hs-identifier hs-type">LEA</span></a></span><span> </span><span id="local-6989586621681030702"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030702"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpAddr"><span class="hs-identifier hs-type">OpAddr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrBaseIndex"><span class="hs-identifier hs-type">AddrBaseIndex</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EABaseReg"><span class="hs-identifier hs-type">EABaseReg</span></a></span><span> </span><span id="local-6989586621681030700"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030700"><span class="hs-identifier hs-var">reg1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EAIndex"><span class="hs-identifier hs-type">EAIndex</span></a></span><span> </span><span id="local-6989586621681030699"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030699"><span class="hs-identifier hs-var">reg2</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030698"><span class="annot"><span class="annottext">dst :: Operand
</span><a href="#local-6989586621681030698"><span class="hs-identifier hs-var">dst</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span id="local-6989586621681030697"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030697"><span class="hs-identifier hs-var">reg3</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-643"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030700"><span class="hs-identifier hs-var">reg1</span></a></span><span> </span><span class="annot"><span class="annottext">Reg -&gt; Reg -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030697"><span class="hs-identifier hs-var">reg3</span></a></span><span>
</span><span id="line-644"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030702"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030699"><span class="hs-identifier hs-var">reg2</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030698"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-645"></span><span>
</span><span id="line-646"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LEA"><span class="hs-identifier hs-type">LEA</span></a></span><span> </span><span id="local-6989586621681030696"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030696"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpAddr"><span class="hs-identifier hs-type">OpAddr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrBaseIndex"><span class="hs-identifier hs-type">AddrBaseIndex</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EABaseReg"><span class="hs-identifier hs-type">EABaseReg</span></a></span><span> </span><span id="local-6989586621681030695"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030695"><span class="hs-identifier hs-var">reg1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EAIndex"><span class="hs-identifier hs-type">EAIndex</span></a></span><span> </span><span id="local-6989586621681030694"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030694"><span class="hs-identifier hs-var">reg2</span></a></span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">0</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030693"><span class="annot"><span class="annottext">dst :: Operand
</span><a href="#local-6989586621681030693"><span class="hs-identifier hs-var">dst</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span id="local-6989586621681030692"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030692"><span class="hs-identifier hs-var">reg3</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-647"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030694"><span class="hs-identifier hs-var">reg2</span></a></span><span> </span><span class="annot"><span class="annottext">Reg -&gt; Reg -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030692"><span class="hs-identifier hs-var">reg3</span></a></span><span>
</span><span id="line-648"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030696"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030695"><span class="hs-identifier hs-var">reg1</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030693"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-649"></span><span>
</span><span id="line-650"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LEA"><span class="hs-identifier hs-type">LEA</span></a></span><span> </span><span id="local-6989586621681030691"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030691"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpAddr"><span class="hs-identifier hs-type">OpAddr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrBaseIndex"><span class="hs-identifier hs-type">AddrBaseIndex</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#EABaseReg"><span class="hs-identifier hs-type">EABaseReg</span></a></span><span> </span><span id="local-6989586621681030690"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030690"><span class="hs-identifier hs-var">reg1</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">EAIndex
</span><a href="GHC.CmmToAsm.X86.Regs.html#EAIndexNone"><span class="hs-identifier hs-var">EAIndexNone</span></a></span><span> </span><span id="local-6989586621681030689"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030689"><span class="hs-identifier hs-var">displ</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030688"><span class="annot"><span class="annottext">dst :: Operand
</span><a href="#local-6989586621681030688"><span class="hs-identifier hs-var">dst</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span id="local-6989586621681030687"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030687"><span class="hs-identifier hs-var">reg3</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-651"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030690"><span class="hs-identifier hs-var">reg1</span></a></span><span> </span><span class="annot"><span class="annottext">Reg -&gt; Reg -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030687"><span class="hs-identifier hs-var">reg3</span></a></span><span>
</span><span id="line-652"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Format -&gt; Operand -&gt; Operand -&gt; Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#ADD"><span class="hs-identifier hs-var">ADD</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030691"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Imm -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-var">OpImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030689"><span class="hs-identifier hs-var">displ</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030688"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-653"></span><span>
</span><span id="line-654"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LEA"><span class="hs-identifier hs-type">LEA</span></a></span><span> </span><span id="local-6989586621681030685"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030685"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030684"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030684"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030683"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030683"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-655"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;lea&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030685"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030684"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030683"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-656"></span><span>
</span><span id="line-657"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#ADD"><span class="hs-identifier hs-type">ADD</span></a></span><span> </span><span id="local-6989586621681030682"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030682"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">-</span><span class="hs-number">1</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030681"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030681"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-658"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;dec&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030682"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030681"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-659"></span><span>
</span><span id="line-660"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#ADD"><span class="hs-identifier hs-type">ADD</span></a></span><span> </span><span id="local-6989586621681030679"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030679"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInt"><span class="hs-identifier hs-type">ImmInt</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030678"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030678"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-661"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;inc&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030679"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030678"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-662"></span><span>
</span><span id="line-663"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#ADD"><span class="hs-identifier hs-type">ADD</span></a></span><span> </span><span id="local-6989586621681030677"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030677"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030676"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030676"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030675"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030675"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-664"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030677"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030676"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030675"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-665"></span><span>
</span><span id="line-666"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#ADC"><span class="hs-identifier hs-type">ADC</span></a></span><span> </span><span id="local-6989586621681030673"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030673"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030672"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030672"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030671"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030671"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-667"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;adc&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030673"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030672"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030671"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-668"></span><span>
</span><span id="line-669"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SUB"><span class="hs-identifier hs-type">SUB</span></a></span><span> </span><span id="local-6989586621681030669"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030669"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030668"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030668"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030667"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030667"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-670"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sub&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030669"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030668"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030667"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-671"></span><span>
</span><span id="line-672"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SBB"><span class="hs-identifier hs-type">SBB</span></a></span><span> </span><span id="local-6989586621681030665"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030665"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030664"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030664"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030663"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030663"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-673"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sbb&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030665"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030664"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030663"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-674"></span><span>
</span><span id="line-675"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#IMUL"><span class="hs-identifier hs-type">IMUL</span></a></span><span> </span><span id="local-6989586621681030661"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030661"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030660"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030660"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030659"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030659"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-676"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;imul&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030661"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030660"><span class="hs-identifier hs-var">op1</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030659"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-677"></span><span>
</span><span id="line-678"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#ADD_CC"><span class="hs-identifier hs-type">ADD_CC</span></a></span><span> </span><span id="local-6989586621681030657"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030657"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030656"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030656"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030655"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030655"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-679"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;add&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030657"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030656"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030655"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-680"></span><span>
</span><span id="line-681"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SUB_CC"><span class="hs-identifier hs-type">SUB_CC</span></a></span><span> </span><span id="local-6989586621681030653"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030653"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030652"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030652"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030651"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030651"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-682"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sub&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030653"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030652"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030651"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-683"></span><span>
</span><span id="line-684"></span><span>   </span><span class="hs-comment">-- Use a 32-bit instruction when possible as it saves a byte.</span><span>
</span><span id="line-685"></span><span>   </span><span class="hs-comment">-- Notably, extracting the tag bits of a pointer has this form.</span><span>
</span><span id="line-686"></span><span>   </span><span class="hs-comment">-- TODO: we could save a byte in a subsequent CMP instruction too,</span><span>
</span><span id="line-687"></span><span>   </span><span class="hs-comment">-- but need something like a peephole pass for this</span><span>
</span><span id="line-688"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#AND"><span class="hs-identifier hs-type">AND</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II64"><span class="hs-identifier hs-var">II64</span></a></span><span> </span><span id="local-6989586621681030649"><span class="annot"><span class="annottext">src :: Operand
</span><a href="#local-6989586621681030649"><span class="hs-identifier hs-var">src</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInteger"><span class="hs-identifier hs-type">ImmInteger</span></a></span><span> </span><span id="local-6989586621681030648"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030648"><span class="hs-identifier hs-var">mask</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span id="local-6989586621681030647"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030647"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-689"></span><span>      </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030648"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030648"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">0xffffffff</span></span><span>
</span><span id="line-690"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Format -&gt; Operand -&gt; Operand -&gt; Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#AND"><span class="hs-identifier hs-var">AND</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030649"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030647"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-691"></span><span>
</span><span id="line-692"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#AND"><span class="hs-identifier hs-type">AND</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span> </span><span id="local-6989586621681030645"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030645"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030644"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030644"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-693"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;andps&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030645"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030644"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-694"></span><span>
</span><span id="line-695"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#AND"><span class="hs-identifier hs-type">AND</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span id="local-6989586621681030642"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030642"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030641"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030641"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-696"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;andpd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030642"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030641"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-697"></span><span>
</span><span id="line-698"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#AND"><span class="hs-identifier hs-type">AND</span></a></span><span> </span><span id="local-6989586621681030640"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030640"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030639"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030639"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030638"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030638"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-699"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;and&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030640"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030639"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030638"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-700"></span><span>
</span><span id="line-701"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OR"><span class="hs-identifier hs-type">OR</span></a></span><span>  </span><span id="local-6989586621681030636"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030636"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030635"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030635"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030634"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030634"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-702"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;or&quot;</span></span><span class="hs-special">)</span><span>  </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030636"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030635"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030634"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-703"></span><span>
</span><span id="line-704"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#XOR"><span class="hs-identifier hs-type">XOR</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span> </span><span id="local-6989586621681030633"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030633"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030632"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030632"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-705"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xorps&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030633"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030632"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-706"></span><span>
</span><span id="line-707"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#XOR"><span class="hs-identifier hs-type">XOR</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span id="local-6989586621681030631"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030631"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030630"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030630"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-708"></span><span>      </span><span class="hs-glyph">-&gt;</span><span>  </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xorpd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030631"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030630"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-709"></span><span>
</span><span id="line-710"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#XOR"><span class="hs-identifier hs-type">XOR</span></a></span><span> </span><span id="local-6989586621681030629"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030629"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030628"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030628"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030627"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030627"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-711"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xor&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030629"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030628"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030627"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-712"></span><span>
</span><span id="line-713"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#POPCNT"><span class="hs-identifier hs-type">POPCNT</span></a></span><span> </span><span id="local-6989586621681030625"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030625"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030624"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030624"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030623"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030623"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-714"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;popcnt&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030625"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030624"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030623"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-715"></span><span>
</span><span id="line-716"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LZCNT"><span class="hs-identifier hs-type">LZCNT</span></a></span><span> </span><span id="local-6989586621681030621"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030621"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030620"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030620"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030619"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030619"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-717"></span><span>      </span><span class="hs-glyph">-&gt;</span><span>  </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;lzcnt&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030621"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030620"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030619"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-718"></span><span>
</span><span id="line-719"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#TZCNT"><span class="hs-identifier hs-type">TZCNT</span></a></span><span> </span><span id="local-6989586621681030617"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030617"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030616"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030616"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030615"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030615"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-720"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;tzcnt&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030617"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030616"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030615"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-721"></span><span>
</span><span id="line-722"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#BSF"><span class="hs-identifier hs-type">BSF</span></a></span><span> </span><span id="local-6989586621681030613"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030613"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030612"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030612"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030611"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030611"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-723"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;bsf&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030613"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030612"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030611"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-724"></span><span>
</span><span id="line-725"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#BSR"><span class="hs-identifier hs-type">BSR</span></a></span><span> </span><span id="local-6989586621681030609"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030609"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030608"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030608"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030607"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030607"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-726"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var">pprOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;bsr&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030609"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030608"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030607"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-727"></span><span>
</span><span id="line-728"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PDEP"><span class="hs-identifier hs-type">PDEP</span></a></span><span> </span><span id="local-6989586621681030605"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030605"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030604"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030604"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030603"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030603"><span class="hs-identifier hs-var">mask</span></a></span></span><span> </span><span id="local-6989586621681030602"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030602"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-729"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030601"><span class="hs-identifier hs-var">pprFormatOpOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pdep&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030605"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030604"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030603"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030602"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-730"></span><span>
</span><span id="line-731"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PEXT"><span class="hs-identifier hs-type">PEXT</span></a></span><span> </span><span id="local-6989586621681030599"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030599"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030598"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030598"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030597"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030597"><span class="hs-identifier hs-var">mask</span></a></span></span><span> </span><span id="local-6989586621681030596"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030596"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-732"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030601"><span class="hs-identifier hs-var">pprFormatOpOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pext&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030599"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030598"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030597"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030596"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-733"></span><span>
</span><span id="line-734"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PREFETCH"><span class="hs-identifier hs-type">PREFETCH</span></a></span><span> </span><span class="annot"><span class="annottext">PrefetchVariant
</span><a href="GHC.CmmToAsm.X86.Instr.html#NTA"><span class="hs-identifier hs-var">NTA</span></a></span><span> </span><span id="local-6989586621681030593"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030593"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030592"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030592"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-735"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030591"><span class="hs-identifier hs-var">pprFormatOp_</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;prefetchnta&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030593"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030592"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-736"></span><span>
</span><span id="line-737"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PREFETCH"><span class="hs-identifier hs-type">PREFETCH</span></a></span><span> </span><span class="annot"><span class="annottext">PrefetchVariant
</span><a href="GHC.CmmToAsm.X86.Instr.html#Lvl0"><span class="hs-identifier hs-var">Lvl0</span></a></span><span> </span><span id="local-6989586621681030589"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030589"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030588"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030588"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-738"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030591"><span class="hs-identifier hs-var">pprFormatOp_</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;prefetcht0&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030589"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030588"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-739"></span><span>
</span><span id="line-740"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PREFETCH"><span class="hs-identifier hs-type">PREFETCH</span></a></span><span> </span><span class="annot"><span class="annottext">PrefetchVariant
</span><a href="GHC.CmmToAsm.X86.Instr.html#Lvl1"><span class="hs-identifier hs-var">Lvl1</span></a></span><span> </span><span id="local-6989586621681030586"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030586"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030585"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030585"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-741"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030591"><span class="hs-identifier hs-var">pprFormatOp_</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;prefetcht1&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030586"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030585"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-742"></span><span>
</span><span id="line-743"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PREFETCH"><span class="hs-identifier hs-type">PREFETCH</span></a></span><span> </span><span class="annot"><span class="annottext">PrefetchVariant
</span><a href="GHC.CmmToAsm.X86.Instr.html#Lvl2"><span class="hs-identifier hs-var">Lvl2</span></a></span><span> </span><span id="local-6989586621681030583"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030583"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030582"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030582"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-744"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030591"><span class="hs-identifier hs-var">pprFormatOp_</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;prefetcht2&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030583"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030582"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-745"></span><span>
</span><span id="line-746"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#NOT"><span class="hs-identifier hs-type">NOT</span></a></span><span> </span><span id="local-6989586621681030580"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030580"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030579"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030579"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-747"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;not&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030580"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030579"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-748"></span><span>
</span><span id="line-749"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#BSWAP"><span class="hs-identifier hs-type">BSWAP</span></a></span><span> </span><span id="local-6989586621681030577"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030577"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030576"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030576"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-750"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;bswap&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030577"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Reg -&gt; Operand
</span><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-var">OpReg</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030576"><span class="hs-identifier hs-var">op</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-751"></span><span>
</span><span id="line-752"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#NEGI"><span class="hs-identifier hs-type">NEGI</span></a></span><span> </span><span id="local-6989586621681030574"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030574"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030573"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030573"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-753"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;neg&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030574"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030573"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-754"></span><span>
</span><span id="line-755"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SHL"><span class="hs-identifier hs-type">SHL</span></a></span><span> </span><span id="local-6989586621681030571"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030571"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030570"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030570"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030569"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030569"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-756"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030568"><span class="hs-identifier hs-var">pprShift</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;shl&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030571"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030570"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030569"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-757"></span><span>
</span><span id="line-758"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SAR"><span class="hs-identifier hs-type">SAR</span></a></span><span> </span><span id="local-6989586621681030566"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030566"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030565"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030565"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030564"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030564"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-759"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030568"><span class="hs-identifier hs-var">pprShift</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sar&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030566"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030565"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030564"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-760"></span><span>
</span><span id="line-761"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SHR"><span class="hs-identifier hs-type">SHR</span></a></span><span> </span><span id="local-6989586621681030562"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030562"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030561"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030561"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030560"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030560"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-762"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030568"><span class="hs-identifier hs-var">pprShift</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;shr&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030562"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030561"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030560"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-763"></span><span>
</span><span id="line-764"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#BT"><span class="hs-identifier hs-type">BT</span></a></span><span> </span><span id="local-6989586621681030558"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030558"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030557"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030557"><span class="hs-identifier hs-var">imm</span></a></span></span><span> </span><span id="local-6989586621681030556"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030556"><span class="hs-identifier hs-var">src</span></a></span></span><span>
</span><span id="line-765"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Imm -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030555"><span class="hs-identifier hs-var">pprFormatImmOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;bt&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030558"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030557"><span class="hs-identifier hs-var">imm</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030556"><span class="hs-identifier hs-var">src</span></a></span><span>
</span><span id="line-766"></span><span>
</span><span id="line-767"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CMP"><span class="hs-identifier hs-type">CMP</span></a></span><span> </span><span id="local-6989586621681030553"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030553"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030552"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030552"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030551"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030551"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-768"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Format -&gt; Bool
</span><a href="GHC.CmmToAsm.Format.html#isFloatFormat"><span class="hs-identifier hs-var">isFloatFormat</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030553"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;ucomi&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030553"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030552"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030551"><span class="hs-identifier hs-var">dst</span></a></span><span> </span><span class="hs-comment">-- SSE2</span><span>
</span><span id="line-769"></span><span>     </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cmp&quot;</span></span><span class="hs-special">)</span><span>   </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030553"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030552"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030551"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-770"></span><span>
</span><span id="line-771"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#TEST"><span class="hs-identifier hs-type">TEST</span></a></span><span> </span><span id="local-6989586621681030548"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030548"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030547"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030547"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030546"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030546"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-772"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;test&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030545"><span class="hs-identifier hs-var">format'</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030547"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030546"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-773"></span><span>         </span><span class="hs-keyword">where</span><span>
</span><span id="line-774"></span><span>        </span><span class="hs-comment">-- Match instructions like 'test $0x3,%esi' or 'test $0x7,%rbx'.</span><span>
</span><span id="line-775"></span><span>        </span><span class="hs-comment">-- We can replace them by equivalent, but smaller instructions</span><span>
</span><span id="line-776"></span><span>        </span><span class="hs-comment">-- by reducing the size of the immediate operand as far as possible.</span><span>
</span><span id="line-777"></span><span>        </span><span class="hs-comment">-- (We could handle masks larger than a single byte too,</span><span>
</span><span id="line-778"></span><span>        </span><span class="hs-comment">-- but it would complicate the code considerably</span><span>
</span><span id="line-779"></span><span>        </span><span class="hs-comment">-- and tag checks are by far the most common case.)</span><span>
</span><span id="line-780"></span><span>        </span><span class="hs-comment">-- The mask must have the high bit clear for this smaller encoding</span><span>
</span><span id="line-781"></span><span>        </span><span class="hs-comment">-- to be completely equivalent to the original; in particular so</span><span>
</span><span id="line-782"></span><span>        </span><span class="hs-comment">-- that the signed comparison condition bits are the same as they</span><span>
</span><span id="line-783"></span><span>        </span><span class="hs-comment">-- would be if doing a full word comparison. See #13425.</span><span>
</span><span id="line-784"></span><span>          </span><span id="local-6989586621681030545"><span class="annot"><span class="annottext">format' :: Format
</span><a href="#local-6989586621681030545"><span class="hs-identifier hs-var hs-var">format'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030547"><span class="hs-identifier hs-var">src</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030546"><span class="hs-identifier hs-var">dst</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-785"></span><span>           </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#ImmInteger"><span class="hs-identifier hs-type">ImmInteger</span></a></span><span> </span><span id="local-6989586621681030540"><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030540"><span class="hs-identifier hs-var">mask</span></a></span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span id="local-6989586621681030539"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030539"><span class="hs-identifier hs-var">dstReg</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-786"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">0</span></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030540"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><a href="#local-6989586621681030540"><span class="hs-identifier hs-var">mask</span></a></span><span> </span><span class="annot"><span class="annottext">Integer -&gt; Integer -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;</span></span><span> </span><span class="annot"><span class="annottext">Integer
</span><span class="hs-number">128</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Reg -&gt; Format
</span><a href="#local-6989586621681030538"><span class="hs-identifier hs-var">minSizeOfReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030539"><span class="hs-identifier hs-var">dstReg</span></a></span><span>
</span><span id="line-787"></span><span>           </span><span class="annot"><span class="annottext">(Operand, Operand)
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030548"><span class="hs-identifier hs-var">format</span></a></span><span>
</span><span id="line-788"></span><span>          </span><span id="local-6989586621681030538"><span class="annot"><span class="annottext">minSizeOfReg :: Platform -&gt; Reg -&gt; Format
</span><a href="#local-6989586621681030538"><span class="hs-identifier hs-var hs-var">minSizeOfReg</span></a></span></span><span> </span><span id="local-6989586621681030531"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030531"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#RegReal"><span class="hs-identifier hs-type">RegReal</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.Platform.Reg.html#RealRegSingle"><span class="hs-identifier hs-type">RealRegSingle</span></a></span><span> </span><span id="local-6989586621681030530"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030530"><span class="hs-identifier hs-var">i</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-789"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030531"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030530"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">3</span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>  </span><span class="hs-comment">-- al, bl, cl, dl</span><span>
</span><span id="line-790"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030531"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030530"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">7</span></span><span>        </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span> </span><span class="hs-comment">-- si, di, bp, sp</span><span>
</span><span id="line-791"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030531"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">&amp;&amp;</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621681030530"><span class="hs-identifier hs-var">i</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&lt;=</span></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">15</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>  </span><span class="hs-comment">-- al .. r15b</span><span>
</span><span id="line-792"></span><span>          </span><span class="annot"><a href="#local-6989586621681030538"><span class="hs-identifier hs-var">minSizeOfReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Reg
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030548"><span class="hs-identifier hs-var">format</span></a></span><span>                 </span><span class="hs-comment">-- other</span><span>
</span><span id="line-793"></span><span>
</span><span id="line-794"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#PUSH"><span class="hs-identifier hs-type">PUSH</span></a></span><span> </span><span id="local-6989586621681030528"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030528"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030527"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030527"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-795"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;push&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030528"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030527"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-796"></span><span>
</span><span id="line-797"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#POP"><span class="hs-identifier hs-type">POP</span></a></span><span> </span><span id="local-6989586621681030525"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030525"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030524"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030524"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-798"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pop&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030525"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030524"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-799"></span><span>
</span><span id="line-800"></span><span class="hs-comment">-- both unused (SDM):</span><span>
</span><span id="line-801"></span><span class="hs-comment">-- PUSHA -&gt; text &quot;\tpushal&quot;</span><span>
</span><span id="line-802"></span><span class="hs-comment">-- POPA  -&gt; text &quot;\tpopal&quot;</span><span>
</span><span id="line-803"></span><span>
</span><span id="line-804"></span><span>   </span><span class="annot"><span class="annottext">Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#NOP"><span class="hs-identifier hs-var">NOP</span></a></span><span>
</span><span id="line-805"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tnop&quot;</span></span><span>
</span><span id="line-806"></span><span>
</span><span id="line-807"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CLTD"><span class="hs-identifier hs-type">CLTD</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span>
</span><span id="line-808"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcbtw&quot;</span></span><span>
</span><span id="line-809"></span><span>
</span><span id="line-810"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CLTD"><span class="hs-identifier hs-type">CLTD</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II16"><span class="hs-identifier hs-var">II16</span></a></span><span>
</span><span id="line-811"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcwtd&quot;</span></span><span>
</span><span id="line-812"></span><span>
</span><span id="line-813"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CLTD"><span class="hs-identifier hs-type">CLTD</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span>
</span><span id="line-814"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcltd&quot;</span></span><span>
</span><span id="line-815"></span><span>
</span><span id="line-816"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CLTD"><span class="hs-identifier hs-type">CLTD</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II64"><span class="hs-identifier hs-var">II64</span></a></span><span>
</span><span id="line-817"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcqto&quot;</span></span><span>
</span><span id="line-818"></span><span>
</span><span id="line-819"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CLTD"><span class="hs-identifier hs-type">CLTD</span></a></span><span> </span><span id="local-6989586621681030521"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030521"><span class="hs-identifier hs-var">x</span></a></span></span><span>
</span><span id="line-820"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">(String -&gt; SDoc) -&gt; String -&gt; SDoc
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;pprInstr: CLTD &quot;</span></span><span> </span><span class="annot"><span class="annottext">String -&gt; String -&gt; String
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">Format -&gt; String
forall a. Show a =&gt; a -&gt; String
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030521"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-821"></span><span>
</span><span id="line-822"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SETCC"><span class="hs-identifier hs-type">SETCC</span></a></span><span> </span><span id="local-6989586621681030519"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030519"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681030518"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030518"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-823"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Cond -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030517"><span class="hs-identifier hs-var">pprCondInstr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;set&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030519"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030518"><span class="hs-identifier hs-var">op</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-824"></span><span>
</span><span id="line-825"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#XCHG"><span class="hs-identifier hs-type">XCHG</span></a></span><span> </span><span id="local-6989586621681030514"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030514"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030513"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030513"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030512"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030512"><span class="hs-identifier hs-var">val</span></a></span></span><span>
</span><span id="line-826"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030511"><span class="hs-identifier hs-var">pprFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xchg&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030514"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030513"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030512"><span class="hs-identifier hs-var">val</span></a></span><span>
</span><span id="line-827"></span><span>
</span><span id="line-828"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#JXX"><span class="hs-identifier hs-type">JXX</span></a></span><span> </span><span id="local-6989586621681030509"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030509"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681030508"><span class="annot"><span class="annottext">BlockId
</span><a href="#local-6989586621681030508"><span class="hs-identifier hs-var">blockid</span></a></span></span><span>
</span><span id="line-829"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Cond -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030517"><span class="hs-identifier hs-var">pprCondInstr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;j&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030509"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CLabel -&gt; SDoc
forall a. Outputable a =&gt; a -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ppr"><span class="hs-identifier hs-var">ppr</span></a></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><a href="#local-6989586621681030507"><span class="hs-identifier hs-var">lab</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-830"></span><span>         </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621681030507"><span class="annot"><span class="annottext">lab :: CLabel
</span><a href="#local-6989586621681030507"><span class="hs-identifier hs-var hs-var">lab</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BlockId -&gt; CLabel
</span><a href="GHC.Cmm.BlockId.html#blockLbl"><span class="hs-identifier hs-var">blockLbl</span></a></span><span> </span><span class="annot"><span class="annottext">BlockId
</span><a href="#local-6989586621681030508"><span class="hs-identifier hs-var">blockid</span></a></span><span>
</span><span id="line-831"></span><span>
</span><span id="line-832"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#JXX_GBL"><span class="hs-identifier hs-type">JXX_GBL</span></a></span><span> </span><span id="local-6989586621681030505"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030505"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681030504"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030504"><span class="hs-identifier hs-var">imm</span></a></span></span><span>
</span><span id="line-833"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Cond -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030517"><span class="hs-identifier hs-var">pprCondInstr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;j&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030505"><span class="hs-identifier hs-var">cond</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030504"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-834"></span><span>
</span><span id="line-835"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#JMP"><span class="hs-identifier hs-type">JMP</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span id="local-6989586621681030502"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030502"><span class="hs-identifier hs-var">imm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Reg]
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-836"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tjmp &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030502"><span class="hs-identifier hs-var">imm</span></a></span><span>
</span><span id="line-837"></span><span>
</span><span id="line-838"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#JMP"><span class="hs-identifier hs-type">JMP</span></a></span><span> </span><span id="local-6989586621681030501"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030501"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="annot"><span class="annottext">[Reg]
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-839"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tjmp *&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030501"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-840"></span><span>
</span><span id="line-841"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#JMP_TBL"><span class="hs-identifier hs-type">JMP_TBL</span></a></span><span> </span><span id="local-6989586621681030499"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030499"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="annot"><span class="annottext">[Maybe JumpDest]
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Section
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">CLabel
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-842"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Operand -&gt; [Reg] -&gt; Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#JMP"><span class="hs-identifier hs-var">JMP</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030499"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-843"></span><span>
</span><span id="line-844"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CALL"><span class="hs-identifier hs-type">CALL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621681030497"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030497"><span class="hs-identifier hs-var">imm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Reg]
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-845"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcall &quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030497"><span class="hs-identifier hs-var">imm</span></a></span><span>
</span><span id="line-846"></span><span>
</span><span id="line-847"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CALL"><span class="hs-identifier hs-type">CALL</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621681030496"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030496"><span class="hs-identifier hs-var">reg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Reg]
</span><span class="hs-identifier">_</span></span><span>
</span><span id="line-848"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcall *&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030496"><span class="hs-identifier hs-var">reg</span></a></span><span>
</span><span id="line-849"></span><span>
</span><span id="line-850"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#IDIV"><span class="hs-identifier hs-type">IDIV</span></a></span><span> </span><span id="local-6989586621681030494"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030494"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030493"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030493"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-851"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;idiv&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030494"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030493"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-852"></span><span>
</span><span id="line-853"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#DIV"><span class="hs-identifier hs-type">DIV</span></a></span><span> </span><span id="local-6989586621681030491"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030491"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030490"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030490"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-854"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;div&quot;</span></span><span class="hs-special">)</span><span>  </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030491"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030490"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-855"></span><span>
</span><span id="line-856"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#IMUL2"><span class="hs-identifier hs-type">IMUL2</span></a></span><span> </span><span id="local-6989586621681030488"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030488"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030487"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030487"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-857"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;imul&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030488"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030487"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-858"></span><span>
</span><span id="line-859"></span><span>   </span><span class="hs-comment">-- x86_64 only</span><span>
</span><span id="line-860"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MUL"><span class="hs-identifier hs-type">MUL</span></a></span><span> </span><span id="local-6989586621681030485"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030485"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030484"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030484"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030483"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030483"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-861"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mul&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030485"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030484"><span class="hs-identifier hs-var">op1</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030483"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-862"></span><span>
</span><span id="line-863"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#MUL2"><span class="hs-identifier hs-type">MUL2</span></a></span><span> </span><span id="local-6989586621681030481"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030481"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030480"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030480"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-864"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var">pprFormatOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;mul&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030481"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030480"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-865"></span><span>
</span><span id="line-866"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#FDIV"><span class="hs-identifier hs-type">FDIV</span></a></span><span> </span><span id="local-6989586621681030478"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030478"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030477"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030477"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030476"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030476"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-867"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;div&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030478"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030477"><span class="hs-identifier hs-var">op1</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030476"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-868"></span><span>
</span><span id="line-869"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#SQRT"><span class="hs-identifier hs-type">SQRT</span></a></span><span> </span><span id="local-6989586621681030474"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030474"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030473"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030473"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030472"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030472"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-870"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030511"><span class="hs-identifier hs-var">pprFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;sqrt&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030474"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030473"><span class="hs-identifier hs-var">op1</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030472"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-871"></span><span>
</span><span id="line-872"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTSS2SD"><span class="hs-identifier hs-type">CVTSS2SD</span></a></span><span> </span><span id="local-6989586621681030470"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030470"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030469"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030469"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-873"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Reg -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030468"><span class="hs-identifier hs-var">pprRegReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvtss2sd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030470"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030469"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-874"></span><span>
</span><span id="line-875"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTSD2SS"><span class="hs-identifier hs-type">CVTSD2SS</span></a></span><span> </span><span id="local-6989586621681030466"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030466"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030465"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030465"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-876"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Reg -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030468"><span class="hs-identifier hs-var">pprRegReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvtsd2ss&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030466"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030465"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-877"></span><span>
</span><span id="line-878"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTTSS2SIQ"><span class="hs-identifier hs-type">CVTTSS2SIQ</span></a></span><span> </span><span id="local-6989586621681030463"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030463"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030462"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030462"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030461"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030461"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-879"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030460"><span class="hs-identifier hs-var">pprFormatFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvttss2si&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF32"><span class="hs-identifier hs-var">FF32</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030463"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030462"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030461"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-880"></span><span>
</span><span id="line-881"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTTSD2SIQ"><span class="hs-identifier hs-type">CVTTSD2SIQ</span></a></span><span> </span><span id="local-6989586621681030458"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030458"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030457"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030457"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030456"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030456"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-882"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030460"><span class="hs-identifier hs-var">pprFormatFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvttsd2si&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#FF64"><span class="hs-identifier hs-var">FF64</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030458"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030457"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030456"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-883"></span><span>
</span><span id="line-884"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTSI2SS"><span class="hs-identifier hs-type">CVTSI2SS</span></a></span><span> </span><span id="local-6989586621681030454"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030454"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030453"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030453"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030452"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030452"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-885"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030511"><span class="hs-identifier hs-var">pprFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvtsi2ss&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030454"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030453"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030452"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-886"></span><span>
</span><span id="line-887"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CVTSI2SD"><span class="hs-identifier hs-type">CVTSI2SD</span></a></span><span> </span><span id="local-6989586621681030450"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030450"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030449"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030449"><span class="hs-identifier hs-var">from</span></a></span></span><span> </span><span id="local-6989586621681030448"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030448"><span class="hs-identifier hs-var">to</span></a></span></span><span>
</span><span id="line-888"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030511"><span class="hs-identifier hs-var">pprFormatOpReg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cvtsi2sd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030450"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030449"><span class="hs-identifier hs-var">from</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030448"><span class="hs-identifier hs-var">to</span></a></span><span>
</span><span id="line-889"></span><span>
</span><span id="line-890"></span><span>       </span><span class="hs-comment">-- FETCHGOT for PIC on ELF platforms</span><span>
</span><span id="line-891"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#FETCHGOT"><span class="hs-identifier hs-type">FETCHGOT</span></a></span><span> </span><span id="local-6989586621681030446"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030446"><span class="hs-identifier hs-var">reg</span></a></span></span><span>
</span><span id="line-892"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcall 1f&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-893"></span><span>                </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;1:\tpopl\t&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030446"><span class="hs-identifier hs-var">reg</span></a></span><span> </span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-894"></span><span>                </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\taddl\t$_GLOBAL_OFFSET_TABLE_+(.-1b), &quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-895"></span><span>                       </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030446"><span class="hs-identifier hs-var">reg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-896"></span><span>              </span><span class="hs-special">]</span><span>
</span><span id="line-897"></span><span>
</span><span id="line-898"></span><span>    </span><span class="hs-comment">-- FETCHPC for PIC on Darwin/x86</span><span>
</span><span id="line-899"></span><span>    </span><span class="hs-comment">-- get the instruction pointer into a register</span><span>
</span><span id="line-900"></span><span>    </span><span class="hs-comment">-- (Terminology note: the IP is called Program Counter on PPC,</span><span>
</span><span id="line-901"></span><span>    </span><span class="hs-comment">--  and it's a good thing to use the same name on both platforms)</span><span>
</span><span id="line-902"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#FETCHPC"><span class="hs-identifier hs-type">FETCHPC</span></a></span><span> </span><span id="local-6989586621681030443"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030443"><span class="hs-identifier hs-var">reg</span></a></span></span><span>
</span><span id="line-903"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#vcat"><span class="hs-identifier hs-var">vcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tcall 1f&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-904"></span><span>                </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;1:\tpopl\t&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II32"><span class="hs-identifier hs-var">II32</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030443"><span class="hs-identifier hs-var">reg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-905"></span><span>              </span><span class="hs-special">]</span><span>
</span><span id="line-906"></span><span>
</span><span id="line-907"></span><span>   </span><span class="hs-comment">-- the</span><span>
</span><span id="line-908"></span><span>   </span><span class="hs-comment">-- GST fmt src addr ==&gt; FLD dst ; FSTPsz addr</span><span>
</span><span id="line-909"></span><span>   </span><span id="local-6989586621681030442"><span class="annot"><span class="annottext">g :: Instr
</span><a href="#local-6989586621681030442"><span class="hs-identifier hs-var">g</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#X87Store"><span class="hs-identifier hs-type">X87Store</span></a></span><span> </span><span id="local-6989586621681030440"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030440"><span class="hs-identifier hs-var">fmt</span></a></span></span><span>  </span><span id="local-6989586621681030439"><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030439"><span class="hs-identifier hs-var">addr</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-910"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Instr -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030438"><span class="hs-identifier hs-var">pprX87</span></a></span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030442"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030437"><span class="hs-identifier hs-var">gtab</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;fstp&quot;</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat_x87"><span class="hs-identifier hs-var">pprFormat_x87</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030440"><span class="hs-identifier hs-var">fmt</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030436"><span class="hs-identifier hs-var">gsp</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; AddrMode -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-var">pprAddr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030439"><span class="hs-identifier hs-var">addr</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-911"></span><span>
</span><span id="line-912"></span><span>   </span><span class="hs-comment">-- Atomics</span><span>
</span><span id="line-913"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#LOCK"><span class="hs-identifier hs-type">LOCK</span></a></span><span> </span><span id="local-6989586621681030434"><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030434"><span class="hs-identifier hs-var">i</span></a></span></span><span>
</span><span id="line-914"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tlock&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Instr -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprInstr"><span class="hs-identifier hs-var">pprInstr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030434"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-915"></span><span>
</span><span id="line-916"></span><span>   </span><span class="annot"><span class="annottext">Instr
</span><a href="GHC.CmmToAsm.X86.Instr.html#MFENCE"><span class="hs-identifier hs-var">MFENCE</span></a></span><span>
</span><span id="line-917"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;\tmfence&quot;</span></span><span>
</span><span id="line-918"></span><span>
</span><span id="line-919"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#XADD"><span class="hs-identifier hs-type">XADD</span></a></span><span> </span><span id="local-6989586621681030431"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030431"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030430"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030430"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030429"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030429"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-920"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;xadd&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030431"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030430"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030429"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-921"></span><span>
</span><span id="line-922"></span><span>   </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#CMPXCHG"><span class="hs-identifier hs-type">CMPXCHG</span></a></span><span> </span><span id="local-6989586621681030427"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030427"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030426"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030426"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030425"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030425"><span class="hs-identifier hs-var">dst</span></a></span></span><span>
</span><span id="line-923"></span><span>      </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var">pprFormatOpOp</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;cmpxchg&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030427"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030426"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030425"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-924"></span><span>
</span><span id="line-925"></span><span>
</span><span id="line-926"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-927"></span><span>   </span><span class="annot"><a href="#local-6989586621681030437"><span class="hs-identifier hs-type">gtab</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-928"></span><span>   </span><span id="local-6989586621681030437"><span class="annot"><span class="annottext">gtab :: SDoc
</span><a href="#local-6989586621681030437"><span class="hs-identifier hs-var hs-var">gtab</span></a></span></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span>
</span><span id="line-929"></span><span>
</span><span id="line-930"></span><span>   </span><span class="annot"><a href="#local-6989586621681030436"><span class="hs-identifier hs-type">gsp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-931"></span><span>   </span><span id="local-6989586621681030436"><span class="annot"><span class="annottext">gsp :: SDoc
</span><a href="#local-6989586621681030436"><span class="hs-identifier hs-var hs-var">gsp</span></a></span></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">' '</span></span><span>
</span><span id="line-932"></span><span>
</span><span id="line-933"></span><span>
</span><span id="line-934"></span><span>
</span><span id="line-935"></span><span>   </span><span class="annot"><a href="#local-6989586621681030438"><span class="hs-identifier hs-type">pprX87</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-936"></span><span>   </span><span id="local-6989586621681030438"><span class="annot"><span class="annottext">pprX87 :: Instr -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030438"><span class="hs-identifier hs-var hs-var">pprX87</span></a></span></span><span> </span><span id="local-6989586621681030424"><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030424"><span class="hs-identifier hs-var">fake</span></a></span></span><span> </span><span id="local-6989586621681030423"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030423"><span class="hs-identifier hs-var">actual</span></a></span></span><span>
</span><span id="line-937"></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'#'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Instr -&gt; SDoc
</span><a href="#local-6989586621681030422"><span class="hs-identifier hs-var">pprX87Instr</span></a></span><span> </span><span class="annot"><span class="annottext">Instr
</span><a href="#local-6989586621681030424"><span class="hs-identifier hs-var">fake</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%24%24"><span class="hs-operator hs-var">$$</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030423"><span class="hs-identifier hs-var">actual</span></a></span><span>
</span><span id="line-938"></span><span>
</span><span id="line-939"></span><span>   </span><span class="annot"><a href="#local-6989586621681030422"><span class="hs-identifier hs-type">pprX87Instr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Instr"><span class="hs-identifier hs-type">Instr</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-940"></span><span>   </span><span id="local-6989586621681030422"><span class="annot"><span class="annottext">pprX87Instr :: Instr -&gt; SDoc
</span><a href="#local-6989586621681030422"><span class="hs-identifier hs-var hs-var">pprX87Instr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#X87Store"><span class="hs-identifier hs-type">X87Store</span></a></span><span> </span><span id="local-6989586621681030421"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030421"><span class="hs-identifier hs-var">fmt</span></a></span></span><span> </span><span id="local-6989586621681030420"><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030420"><span class="hs-identifier hs-var">dst</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; AddrMode -&gt; SDoc
</span><a href="#local-6989586621681030419"><span class="hs-identifier hs-var">pprFormatAddr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; PtrString
</span><a href="GHC.Data.FastString.html#sLit"><span class="hs-identifier hs-var">sLit</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;gst&quot;</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030421"><span class="hs-identifier hs-var">fmt</span></a></span><span> </span><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030420"><span class="hs-identifier hs-var">dst</span></a></span><span>
</span><span id="line-941"></span><span>   </span><span class="annot"><a href="#local-6989586621681030422"><span class="hs-identifier hs-var">pprX87Instr</span></a></span><span> </span><span class="annot"><span class="annottext">Instr
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
forall a. String -&gt; a
</span><a href="GHC.Utils.Panic.Plain.html#panic"><span class="hs-identifier hs-var">panic</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;X86.Ppr.pprX87Instr: no match&quot;</span></span><span>
</span><span id="line-942"></span><span>
</span><span id="line-943"></span><span>   </span><span class="annot"><a href="#local-6989586621681030418"><span class="hs-identifier hs-type">pprDollImm</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#Imm"><span class="hs-identifier hs-type">Imm</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-944"></span><span>   </span><span id="local-6989586621681030418"><span class="annot"><span class="annottext">pprDollImm :: Imm -&gt; SDoc
</span><a href="#local-6989586621681030418"><span class="hs-identifier hs-var hs-var">pprDollImm</span></a></span></span><span> </span><span id="local-6989586621681030417"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030417"><span class="hs-identifier hs-var">i</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#text"><span class="hs-identifier hs-var">text</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><span class="hs-string">&quot;$&quot;</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030417"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-945"></span><span>
</span><span id="line-946"></span><span>
</span><span id="line-947"></span><span>   </span><span class="annot"><a href="#local-6989586621681030516"><span class="hs-identifier hs-type">pprOperand</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../ghc-boot/src/GHC.Platform.html#Platform"><span class="hs-identifier hs-type">Platform</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-948"></span><span>   </span><span id="local-6989586621681030516"><span class="annot"><span class="annottext">pprOperand :: Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var hs-var">pprOperand</span></a></span></span><span> </span><span id="local-6989586621681030416"><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030416"><span class="hs-identifier hs-var">platform</span></a></span></span><span> </span><span id="local-6989586621681030415"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030415"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621681030414"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030414"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030414"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-949"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpReg"><span class="hs-identifier hs-type">OpReg</span></a></span><span> </span><span id="local-6989586621681030413"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030413"><span class="hs-identifier hs-var">r</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030416"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030415"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030413"><span class="hs-identifier hs-var">r</span></a></span><span>
</span><span id="line-950"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpImm"><span class="hs-identifier hs-type">OpImm</span></a></span><span> </span><span id="local-6989586621681030412"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030412"><span class="hs-identifier hs-var">i</span></a></span></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="#local-6989586621681030418"><span class="hs-identifier hs-var">pprDollImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030412"><span class="hs-identifier hs-var">i</span></a></span><span>
</span><span id="line-951"></span><span>      </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#OpAddr"><span class="hs-identifier hs-type">OpAddr</span></a></span><span> </span><span id="local-6989586621681030411"><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030411"><span class="hs-identifier hs-var">ea</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Platform -&gt; AddrMode -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-var">pprAddr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030416"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030411"><span class="hs-identifier hs-var">ea</span></a></span><span>
</span><span id="line-952"></span><span>
</span><span id="line-953"></span><span>
</span><span id="line-954"></span><span>   </span><span class="annot"><a href="#local-6989586621681030410"><span class="hs-identifier hs-type">pprMnemonic_</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-955"></span><span>   </span><span id="local-6989586621681030410"><span class="annot"><span class="annottext">pprMnemonic_ :: PtrString -&gt; SDoc
</span><a href="#local-6989586621681030410"><span class="hs-identifier hs-var hs-var">pprMnemonic_</span></a></span></span><span> </span><span id="local-6989586621681030409"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030409"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-956"></span><span>      </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030409"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span>
</span><span id="line-957"></span><span>
</span><span id="line-958"></span><span>
</span><span id="line-959"></span><span>   </span><span class="annot"><a href="#local-6989586621681030407"><span class="hs-identifier hs-type">pprMnemonic</span></a></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-960"></span><span>   </span><span id="local-6989586621681030407"><span class="annot"><span class="annottext">pprMnemonic :: PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var hs-var">pprMnemonic</span></a></span></span><span> </span><span id="local-6989586621681030406"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030406"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030405"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030405"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-961"></span><span>      </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030406"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier hs-var">pprFormat</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030405"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc -&gt; SDoc -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#%3C%3E"><span class="hs-operator hs-var">&lt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span>
</span><span id="line-962"></span><span>
</span><span id="line-963"></span><span>
</span><span id="line-964"></span><span>   </span><span class="annot"><a href="#local-6989586621681030555"><span class="hs-identifier hs-type">pprFormatImmOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#Imm"><span class="hs-identifier hs-type">Imm</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-965"></span><span>   </span><span id="local-6989586621681030555"><span class="annot"><span class="annottext">pprFormatImmOp :: PtrString -&gt; Format -&gt; Imm -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030555"><span class="hs-identifier hs-var hs-var">pprFormatImmOp</span></a></span></span><span> </span><span id="local-6989586621681030404"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030404"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030403"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030403"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030402"><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030402"><span class="hs-identifier hs-var">imm</span></a></span></span><span> </span><span id="local-6989586621681030401"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030401"><span class="hs-identifier hs-var">op1</span></a></span></span><span>
</span><span id="line-966"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-967"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030404"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030403"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-968"></span><span>           </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'$'</span></span><span class="hs-special">,</span><span>
</span><span id="line-969"></span><span>           </span><span class="annot"><span class="annottext">Imm -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprImm"><span class="hs-identifier hs-var">pprImm</span></a></span><span> </span><span class="annot"><span class="annottext">Imm
</span><a href="#local-6989586621681030402"><span class="hs-identifier hs-var">imm</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-970"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-971"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030403"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030401"><span class="hs-identifier hs-var">op1</span></a></span><span>
</span><span id="line-972"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-973"></span><span>
</span><span id="line-974"></span><span>
</span><span id="line-975"></span><span>   </span><span class="annot"><a href="#local-6989586621681030591"><span class="hs-identifier hs-type">pprFormatOp_</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-976"></span><span>   </span><span id="local-6989586621681030591"><span class="annot"><span class="annottext">pprFormatOp_ :: PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030591"><span class="hs-identifier hs-var hs-var">pprFormatOp_</span></a></span></span><span> </span><span id="local-6989586621681030400"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030400"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030399"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030399"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030398"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030398"><span class="hs-identifier hs-var">op1</span></a></span></span><span>
</span><span id="line-977"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-978"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="#local-6989586621681030410"><span class="hs-identifier hs-var">pprMnemonic_</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030400"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="hs-special">,</span><span>
</span><span id="line-979"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030399"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030398"><span class="hs-identifier hs-var">op1</span></a></span><span>
</span><span id="line-980"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-981"></span><span>
</span><span id="line-982"></span><span>   </span><span class="annot"><a href="#local-6989586621681030680"><span class="hs-identifier hs-type">pprFormatOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-983"></span><span>   </span><span id="local-6989586621681030680"><span class="annot"><span class="annottext">pprFormatOp :: PtrString -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030680"><span class="hs-identifier hs-var hs-var">pprFormatOp</span></a></span></span><span> </span><span id="local-6989586621681030397"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030397"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030396"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030396"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030395"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030395"><span class="hs-identifier hs-var">op1</span></a></span></span><span>
</span><span id="line-984"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-985"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030397"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030396"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-986"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030396"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030395"><span class="hs-identifier hs-var">op1</span></a></span><span>
</span><span id="line-987"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-988"></span><span>
</span><span id="line-989"></span><span>
</span><span id="line-990"></span><span>   </span><span class="annot"><a href="#local-6989586621681030721"><span class="hs-identifier hs-type">pprFormatOpOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-991"></span><span>   </span><span id="local-6989586621681030721"><span class="annot"><span class="annottext">pprFormatOpOp :: PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030721"><span class="hs-identifier hs-var hs-var">pprFormatOpOp</span></a></span></span><span> </span><span id="local-6989586621681030394"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030394"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030393"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030393"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030392"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030392"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030391"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030391"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-992"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-993"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030394"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030393"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-994"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030393"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030392"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-995"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-996"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030393"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030391"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-997"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-998"></span><span>
</span><span id="line-999"></span><span>
</span><span id="line-1000"></span><span>   </span><span class="annot"><a href="#local-6989586621681030643"><span class="hs-identifier hs-type">pprOpOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1001"></span><span>   </span><span id="local-6989586621681030643"><span class="annot"><span class="annottext">pprOpOp :: PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030643"><span class="hs-identifier hs-var hs-var">pprOpOp</span></a></span></span><span> </span><span id="local-6989586621681030390"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030390"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030389"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030389"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030388"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030388"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030387"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030387"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-1002"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1003"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="#local-6989586621681030410"><span class="hs-identifier hs-var">pprMnemonic_</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030390"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1004"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030389"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030388"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1005"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1006"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030389"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030387"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-1007"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1008"></span><span>
</span><span id="line-1009"></span><span>   </span><span class="annot"><a href="#local-6989586621681030468"><span class="hs-identifier hs-type">pprRegReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1010"></span><span>   </span><span id="local-6989586621681030468"><span class="annot"><span class="annottext">pprRegReg :: PtrString -&gt; Reg -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030468"><span class="hs-identifier hs-var hs-var">pprRegReg</span></a></span></span><span> </span><span id="local-6989586621681030386"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030386"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030385"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030385"><span class="hs-identifier hs-var">reg1</span></a></span></span><span> </span><span id="local-6989586621681030384"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030384"><span class="hs-identifier hs-var">reg2</span></a></span></span><span>
</span><span id="line-1011"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1012"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="#local-6989586621681030410"><span class="hs-identifier hs-var">pprMnemonic_</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030386"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1013"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030385"><span class="hs-identifier hs-var">reg1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1014"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1015"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030384"><span class="hs-identifier hs-var">reg2</span></a></span><span>
</span><span id="line-1016"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1017"></span><span>
</span><span id="line-1018"></span><span>
</span><span id="line-1019"></span><span>   </span><span class="annot"><a href="#local-6989586621681030511"><span class="hs-identifier hs-type">pprFormatOpReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1020"></span><span>   </span><span id="local-6989586621681030511"><span class="annot"><span class="annottext">pprFormatOpReg :: PtrString -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030511"><span class="hs-identifier hs-var hs-var">pprFormatOpReg</span></a></span></span><span> </span><span id="local-6989586621681030383"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030383"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030382"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030382"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030381"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030381"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030380"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030380"><span class="hs-identifier hs-var">reg2</span></a></span></span><span>
</span><span id="line-1021"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1022"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030383"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030382"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1023"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030382"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030381"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1024"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1025"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Format
</span><a href="GHC.CmmToAsm.X86.Instr.html#archWordFormat"><span class="hs-identifier hs-var">archWordFormat</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Platform -&gt; Bool
</span><a href="../../ghc-boot/src/GHC.Platform.html#target32Bit"><span class="hs-identifier hs-var">target32Bit</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030380"><span class="hs-identifier hs-var">reg2</span></a></span><span>
</span><span id="line-1026"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1027"></span><span>
</span><span id="line-1028"></span><span>   </span><span class="annot"><a href="#local-6989586621681030715"><span class="hs-identifier hs-type">pprCondOpReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Cond.html#Cond"><span class="hs-identifier hs-type">Cond</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1029"></span><span>   </span><span id="local-6989586621681030715"><span class="annot"><span class="annottext">pprCondOpReg :: PtrString -&gt; Format -&gt; Cond -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030715"><span class="hs-identifier hs-var hs-var">pprCondOpReg</span></a></span></span><span> </span><span id="local-6989586621681030379"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030379"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030378"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030378"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030377"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030377"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681030376"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030376"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030375"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030375"><span class="hs-identifier hs-var">reg2</span></a></span></span><span>
</span><span id="line-1030"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1031"></span><span>           </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span class="hs-special">,</span><span>
</span><span id="line-1032"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030379"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1033"></span><span>           </span><span class="annot"><span class="annottext">Cond -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprCond"><span class="hs-identifier hs-var">pprCond</span></a></span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030377"><span class="hs-identifier hs-var">cond</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1034"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1035"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030378"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030376"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1036"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1037"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030378"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030375"><span class="hs-identifier hs-var">reg2</span></a></span><span>
</span><span id="line-1038"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1039"></span><span>
</span><span id="line-1040"></span><span>   </span><span class="annot"><a href="#local-6989586621681030460"><span class="hs-identifier hs-type">pprFormatFormatOpReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1041"></span><span>   </span><span id="local-6989586621681030460"><span class="annot"><span class="annottext">pprFormatFormatOpReg :: PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030460"><span class="hs-identifier hs-var hs-var">pprFormatFormatOpReg</span></a></span></span><span> </span><span id="local-6989586621681030374"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030374"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030373"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030373"><span class="hs-identifier hs-var">format1</span></a></span></span><span> </span><span id="local-6989586621681030372"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030372"><span class="hs-identifier hs-var">format2</span></a></span></span><span> </span><span id="local-6989586621681030371"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030371"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030370"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030370"><span class="hs-identifier hs-var">reg2</span></a></span></span><span>
</span><span id="line-1042"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1043"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030374"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030372"><span class="hs-identifier hs-var">format2</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1044"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030373"><span class="hs-identifier hs-var">format1</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030371"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1045"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1046"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030372"><span class="hs-identifier hs-var">format2</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030370"><span class="hs-identifier hs-var">reg2</span></a></span><span>
</span><span id="line-1047"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1048"></span><span>
</span><span id="line-1049"></span><span>   </span><span class="annot"><a href="#local-6989586621681030601"><span class="hs-identifier hs-type">pprFormatOpOpReg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Platform.Reg.html#Reg"><span class="hs-identifier hs-type">Reg</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1050"></span><span>   </span><span id="local-6989586621681030601"><span class="annot"><span class="annottext">pprFormatOpOpReg :: PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; Reg -&gt; SDoc
</span><a href="#local-6989586621681030601"><span class="hs-identifier hs-var hs-var">pprFormatOpOpReg</span></a></span></span><span> </span><span id="local-6989586621681030369"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030369"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030368"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030368"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030367"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030367"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030366"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030366"><span class="hs-identifier hs-var">op2</span></a></span></span><span> </span><span id="local-6989586621681030365"><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030365"><span class="hs-identifier hs-var">reg3</span></a></span></span><span>
</span><span id="line-1051"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1052"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030369"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030368"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1053"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030368"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030367"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1054"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1055"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030368"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030366"><span class="hs-identifier hs-var">op2</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1056"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1057"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Reg -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprReg"><span class="hs-identifier hs-var">pprReg</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030368"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Reg
</span><a href="#local-6989586621681030365"><span class="hs-identifier hs-var">reg3</span></a></span><span>
</span><span id="line-1058"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1059"></span><span>
</span><span id="line-1060"></span><span>
</span><span id="line-1061"></span><span>
</span><span id="line-1062"></span><span>   </span><span class="annot"><a href="#local-6989586621681030419"><span class="hs-identifier hs-type">pprFormatAddr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Regs.html#AddrMode"><span class="hs-identifier hs-type">AddrMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1063"></span><span>   </span><span id="local-6989586621681030419"><span class="annot"><span class="annottext">pprFormatAddr :: PtrString -&gt; Format -&gt; AddrMode -&gt; SDoc
</span><a href="#local-6989586621681030419"><span class="hs-identifier hs-var hs-var">pprFormatAddr</span></a></span></span><span> </span><span id="local-6989586621681030364"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030364"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030363"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030363"><span class="hs-identifier hs-var">format</span></a></span></span><span>  </span><span id="local-6989586621681030362"><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030362"><span class="hs-identifier hs-var">op</span></a></span></span><span>
</span><span id="line-1064"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1065"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030364"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030363"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1066"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1067"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; AddrMode -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprAddr"><span class="hs-identifier hs-var">pprAddr</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">AddrMode
</span><a href="#local-6989586621681030362"><span class="hs-identifier hs-var">op</span></a></span><span>
</span><span id="line-1068"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1069"></span><span>
</span><span id="line-1070"></span><span>   </span><span class="annot"><a href="#local-6989586621681030568"><span class="hs-identifier hs-type">pprShift</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1071"></span><span>   </span><span id="local-6989586621681030568"><span class="annot"><span class="annottext">pprShift :: PtrString -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030568"><span class="hs-identifier hs-var hs-var">pprShift</span></a></span></span><span> </span><span id="local-6989586621681030361"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030361"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030360"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030360"><span class="hs-identifier hs-var">format</span></a></span></span><span> </span><span id="local-6989586621681030359"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030359"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621681030358"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030358"><span class="hs-identifier hs-var">dest</span></a></span></span><span>
</span><span id="line-1072"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-1073"></span><span>           </span><span class="annot"><span class="annottext">PtrString -&gt; Format -&gt; SDoc
</span><a href="#local-6989586621681030407"><span class="hs-identifier hs-var">pprMnemonic</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030361"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030360"><span class="hs-identifier hs-var">format</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1074"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="GHC.CmmToAsm.Format.html#II8"><span class="hs-identifier hs-var">II8</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030359"><span class="hs-identifier hs-var">src</span></a></span><span class="hs-special">,</span><span>  </span><span class="hs-comment">-- src is 8-bit sized</span><span>
</span><span id="line-1075"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1076"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030360"><span class="hs-identifier hs-var">format</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030358"><span class="hs-identifier hs-var">dest</span></a></span><span>
</span><span id="line-1077"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1078"></span><span>
</span><span id="line-1079"></span><span>
</span><span id="line-1080"></span><span>   </span><span class="annot"><a href="#local-6989586621681030708"><span class="hs-identifier hs-type">pprFormatOpOpCoerce</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.Format.html#Format"><span class="hs-identifier hs-type">Format</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Instr.html#Operand"><span class="hs-identifier hs-type">Operand</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1081"></span><span>   </span><span id="local-6989586621681030708"><span class="annot"><span class="annottext">pprFormatOpOpCoerce :: PtrString -&gt; Format -&gt; Format -&gt; Operand -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030708"><span class="hs-identifier hs-var hs-var">pprFormatOpOpCoerce</span></a></span></span><span> </span><span id="local-6989586621681030357"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030357"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030356"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030356"><span class="hs-identifier hs-var">format1</span></a></span></span><span> </span><span id="local-6989586621681030355"><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030355"><span class="hs-identifier hs-var">format2</span></a></span></span><span> </span><span id="local-6989586621681030354"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030354"><span class="hs-identifier hs-var">op1</span></a></span></span><span> </span><span id="local-6989586621681030353"><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030353"><span class="hs-identifier hs-var">op2</span></a></span></span><span>
</span><span id="line-1082"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030357"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier hs-var">pprFormat</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030356"><span class="hs-identifier hs-var">format1</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Format -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprFormat"><span class="hs-identifier hs-var">pprFormat</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030355"><span class="hs-identifier hs-var">format2</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1083"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030356"><span class="hs-identifier hs-var">format1</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030354"><span class="hs-identifier hs-var">op1</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1084"></span><span>           </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#comma"><span class="hs-identifier hs-var">comma</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-1085"></span><span>           </span><span class="annot"><span class="annottext">Platform -&gt; Format -&gt; Operand -&gt; SDoc
</span><a href="#local-6989586621681030516"><span class="hs-identifier hs-var">pprOperand</span></a></span><span> </span><span class="annot"><span class="annottext">Platform
</span><a href="#local-6989586621681030748"><span class="hs-identifier hs-var">platform</span></a></span><span> </span><span class="annot"><span class="annottext">Format
</span><a href="#local-6989586621681030355"><span class="hs-identifier hs-var">format2</span></a></span><span> </span><span class="annot"><span class="annottext">Operand
</span><a href="#local-6989586621681030353"><span class="hs-identifier hs-var">op2</span></a></span><span>
</span><span id="line-1086"></span><span>       </span><span class="hs-special">]</span><span>
</span><span id="line-1087"></span><span>
</span><span id="line-1088"></span><span>
</span><span id="line-1089"></span><span>   </span><span class="annot"><a href="#local-6989586621681030517"><span class="hs-identifier hs-type">pprCondInstr</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="GHC.Data.FastString.html#PtrString"><span class="hs-identifier hs-type">PtrString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.CmmToAsm.X86.Cond.html#Cond"><span class="hs-identifier hs-type">Cond</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="GHC.Utils.Outputable.html#SDoc"><span class="hs-identifier hs-type">SDoc</span></a></span><span>
</span><span id="line-1090"></span><span>   </span><span id="local-6989586621681030517"><span class="annot"><span class="annottext">pprCondInstr :: PtrString -&gt; Cond -&gt; SDoc -&gt; SDoc
</span><a href="#local-6989586621681030517"><span class="hs-identifier hs-var hs-var">pprCondInstr</span></a></span></span><span> </span><span id="local-6989586621681030352"><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030352"><span class="hs-identifier hs-var">name</span></a></span></span><span> </span><span id="local-6989586621681030351"><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030351"><span class="hs-identifier hs-var">cond</span></a></span></span><span> </span><span id="local-6989586621681030350"><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030350"><span class="hs-identifier hs-var">arg</span></a></span></span><span>
</span><span id="line-1091"></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[SDoc] -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#hcat"><span class="hs-identifier hs-var">hcat</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Char -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#char"><span class="hs-identifier hs-var">char</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">PtrString -&gt; SDoc
</span><a href="GHC.Utils.Outputable.html#ptext"><span class="hs-identifier hs-var">ptext</span></a></span><span> </span><span class="annot"><span class="annottext">PtrString
</span><a href="#local-6989586621681030352"><span class="hs-identifier hs-var">name</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Cond -&gt; SDoc
</span><a href="GHC.CmmToAsm.X86.Ppr.html#pprCond"><span class="hs-identifier hs-var">pprCond</span></a></span><span> </span><span class="annot"><span class="annottext">Cond
</span><a href="#local-6989586621681030351"><span class="hs-identifier hs-var">cond</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="GHC.Utils.Outputable.html#space"><span class="hs-identifier hs-var">space</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">SDoc
</span><a href="#local-6989586621681030350"><span class="hs-identifier hs-var">arg</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-1092"></span></pre></body></html>